« パフィーが熱いin2004!!の巻 | メイン | 君は社長ブログを読みたいかの巻 »

トラックバックが文字化けをおこしてしまうじゃないかの巻

 どうやらブログを設置してしまう時点で、文字コードをEUC-JPに置き換えてしてしまったのが悪かったらしい。 他の人のページへトラックバックをすると文字化けをおこしている・・・。
 
 個人的には、昔ながらの掲示板と違ってブログの良いところは、やっぱりこのトラックバック機能がある為に、ネットの特色を活かした横の繋がりを強化できる点だと思っている。 それだけにトラックバックをした時に文字化けを起こしていたのでは、なんの為のブログなのかわかんなくなってしまう。 そこで、今回もググッてみました。

 そうして難なく15分ほどで、トラックバックの文字化けは改善されました。 いろいろなページを参考にさせていただいたのですが、「BLOG質問箱」さんの、「トラックバックの送信時の文字コードをUTF-8にする」を主に使用させていただきました。 こういう有意義な情報を発信してくれているみなさまどうもありがとうございます。

 みなさんMovableType(MT)設置の際には、私の様に安易な理由でEUC-JPを選択せずにUTF-8を最初から選択しましょう!(笑) っていうか、MT使いこなしてる人なら常識かも知れませんが・・・。 でも、本当のところどっちが良いんでしょうねえ。 MTに関しては、どうやらUTF-8が良いらしいということは感じてきたのですが、MT以外の世界では、まだまだどの文字コードを使用したらよいかってことに関して混乱が多いような気がしています。 どうにかならんのでしょうかねえ?

ちなみに改善策として利用させていただいた、「BLOG質問箱」さんに掲載のオリジナルは、下記の通りです。

 「ユキノヒノシマウマ」は、最もアメリカらしいと呼ばれる街シカゴから生情報を発信していきますので、「人気ブログランキング」へのクリックよろしくお願いします。banner_03.gif

トラックバックの送信時の文字コードをUTF-8にする。
[MT_HOME]/lib/MT/App/Trackback.pmの120行目あたりの


my($title, $excerpt, $url, $blog_name) = map scalar $q->param($_),
qw( title excerpt url blog_name);
no_utf8($tb_id, $title, $excerpt, $url, $blog_name);

my($title, $excerpt, $url, $blog_name, $icode) = map scalar $q->param($_),
qw( title excerpt url blog_name charset);
no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
require Jcode;
my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8';
my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',
'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name);
$title = Jcode->new($title, $incoming)->$charset();
$excerpt = Jcode->new($excerpt, $incoming)->$charset();
$blog_name = Jcode->new($blog_name, $incoming)->$charset();

とし、173行目あたりを、

if (length($excerpt) > 255) {
$excerpt = substr($excerpt, 0, 252) . '...';
}

から、

if (length($excerpt) > 255) {
$excerpt = substr(Jcode->new($excerpt, $charset)->euc(), 0, 252);
if ($excerpt =~ /\x8F$/ or $excerpt =~ tr/\x8E\xA1-\xFE// % 2) {
chop $excerpt;
}
$excerpt = Jcode->new($excerpt . '...', 'euc')->$charset();
}

とする。

[MT_HOME]/lib/MT.pmの560行目あたりを


## Build query string to be sent on each ping.
my @qs;
push @qs, 'title=' . MT::Util::encode_url($entry->title);
push @qs, 'url=' . MT::Util::encode_url($entry->permalink);
push @qs, 'excerpt=' . MT::Util::encode_url($entry->get_excerpt);
push @qs, 'blog_name=' . MT::Util::encode_url($blog->name);
my $qs = join '&', @qs;

から

## Build query string to be sent on each ping.
require Jcode;
my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
'UTF-8'=>'utf8'}->{$mt->{cfg}->PublishCharset} || 'utf8';
my @qs;
push @qs, 'title=' . MT::Util::encode_url(Jcode->new($entry->title, $charset)->utf8);
push @qs, 'url=' . MT::Util::encode_url(Jcode->new($entry->permalink, $charset)->utf8);
push @qs, 'excerpt=' . MT::Util::encode_url(Jcode->new($entry->get_excerpt, $charset)->utf8);
push @qs, 'blog_name=' . MT::Util::encode_url(Jcode->new($blog->name, $charset)->utf8);
push @qs, 'charset=utf-8';
my $qs = join '&', @qs;

とする。

トラックバック

このエントリーのトラックバックURL:
http://wanderphoto.com/cgi/mt/mt-tb.cgi/535

この一覧は、次のエントリーを参照しています: トラックバックが文字化けをおこしてしまうじゃないかの巻:

» 文字コードと文字化け 送信元 ネットビジネス用CGI Perl HTML Javascriptの情報サイト

  文字コードという言葉は、CGIなどのプログラム関係以外では、あまり耳にしない言葉ではないでしょうか?

ホームページを作ったことのある方で... [詳しくはこちら]

» Movable Type でトラックバックが見事に文字化け 送信元 ブログ+メルマガアフィリエイトで稼ぐ完全エロ思考人
Movable Type のトラックバックの文字化けでとてつもなく困ってます。 [詳しくはこちら]

コメント (4)

 はじめまして。
 Blog「いつもこころにEUROPA」の管理人Nという者です。

 私も最近Movable Type 3.121 を導入し、旅行サイト(現在はポルトガル旅行編)を作成しはじめました。ある程度内容ができてきて、いざ、エキブロのサイトさんにトラックバックをしようと思ったら、見事に相手(エキブロ)のサイト上で文字化けしてしまいました。

 どうしたものかといろいろ検索していたところ、このページにたどり着きました。「ユキノヒノシマウマ」さんは、アルキカタ・ブログ・コンテストで受賞されたので、以前から知っていましたが、このように今の私に役立つ情報まで書かれていて、とてもありがたかったです。

 結果……上に書いてある通りにやったら、見事に文字化けしなくなりました!どうもありがとうございました!これからも宜しくお願いいたします。

  Blog「いつもこころにEUROPA」
  http://travel.macbb.com/blog/

sushi:

 いつもこころにEUROPAさんへ

 自分もトラックバックの文字化けには悩まされました・・・。 でもコメントを拝見すると、すでに改善されたのことで何よりです。

 ポルトガル旅行編の更新を楽しみにしています。
これからもよろしくお願いいたします。

 

sushiさん、こんばんは。お久しぶりです。
ポルトガル旅行編が 無事に完成いたしましたので、
ご報告いたします♪ ポルトガルはいい国でした~。
旅行記を書きながら、余韻にひたることが多かったです。

P.S. レイチェル・ヤマガタ、私もハマりました。

sushi:

 いつもこころにEUROPAさんへ

 お久しぶりです! ポルトガル編楽しみに読ませていただいてます。 
それにしてもレイチェル・ヤマガタのファンが一人増えてうれしいです。(笑)

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2004年12月16日 22:07に投稿されたエントリーのページです。

ひとつ前の投稿は「パフィーが熱いin2004!!の巻」です。

次の投稿は「君は社長ブログを読みたいかの巻」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type