どうやらブログを設置してしまう時点で、文字コードをEUC-JPに置き換えてしてしまったのが悪かったらしい。 他の人のページへトラックバックをすると文字化けをおこしている・・・。
個人的には、昔ながらの掲示板と違ってブログの良いところは、やっぱりこのトラックバック機能がある為に、ネットの特色を活かした横の繋がりを強化できる点だと思っている。 それだけにトラックバックをした時に文字化けを起こしていたのでは、なんの為のブログなのかわかんなくなってしまう。 そこで、今回もググッてみました。
そうして難なく15分ほどで、トラックバックの文字化けは改善されました。 いろいろなページを参考にさせていただいたのですが、「BLOG質問箱」さんの、「トラックバックの送信時の文字コードをUTF-8にする」を主に使用させていただきました。 こういう有意義な情報を発信してくれているみなさまどうもありがとうございます。
みなさんMovableType(MT)設置の際には、私の様に安易な理由でEUC-JPを選択せずにUTF-8を最初から選択しましょう!(笑) っていうか、MT使いこなしてる人なら常識かも知れませんが・・・。 でも、本当のところどっちが良いんでしょうねえ。 MTに関しては、どうやらUTF-8が良いらしいということは感じてきたのですが、MT以外の世界では、まだまだどの文字コードを使用したらよいかってことに関して混乱が多いような気がしています。 どうにかならんのでしょうかねえ?
ちなみに改善策として利用させていただいた、「BLOG質問箱」さんに掲載のオリジナルは、下記の通りです。
「ユキノヒノシマウマ」は、最もアメリカらしいと呼ばれる街シカゴから生情報を発信していきますので、「人気ブログランキング」へのクリックよろしくお願いします。![]()
トラックバックの送信時の文字コードを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;
とする。
コメント (4)
はじめまして。
Blog「いつもこころにEUROPA」の管理人Nという者です。
私も最近Movable Type 3.121 を導入し、旅行サイト(現在はポルトガル旅行編)を作成しはじめました。ある程度内容ができてきて、いざ、エキブロのサイトさんにトラックバックをしようと思ったら、見事に相手(エキブロ)のサイト上で文字化けしてしまいました。
どうしたものかといろいろ検索していたところ、このページにたどり着きました。「ユキノヒノシマウマ」さんは、アルキカタ・ブログ・コンテストで受賞されたので、以前から知っていましたが、このように今の私に役立つ情報まで書かれていて、とてもありがたかったです。
結果……上に書いてある通りにやったら、見事に文字化けしなくなりました!どうもありがとうございました!これからも宜しくお願いいたします。
Blog「いつもこころにEUROPA」
http://travel.macbb.com/blog/
投稿者: いつもこころにEUROPA | 2005年02月06日 23:37
日時: 2005年02月06日 23:37
いつもこころにEUROPAさんへ
自分もトラックバックの文字化けには悩まされました・・・。 でもコメントを拝見すると、すでに改善されたのことで何よりです。
ポルトガル旅行編の更新を楽しみにしています。
これからもよろしくお願いいたします。
投稿者: sushi | 2005年02月07日 00:59
日時: 2005年02月07日 00:59
sushiさん、こんばんは。お久しぶりです。
ポルトガル旅行編が 無事に完成いたしましたので、
ご報告いたします♪ ポルトガルはいい国でした~。
旅行記を書きながら、余韻にひたることが多かったです。
P.S. レイチェル・ヤマガタ、私もハマりました。
投稿者: いつもこころにEUROPA | 2005年03月12日 01:38
日時: 2005年03月12日 01:38
いつもこころにEUROPAさんへ
お久しぶりです! ポルトガル編楽しみに読ませていただいてます。
それにしてもレイチェル・ヤマガタのファンが一人増えてうれしいです。(笑)
投稿者: sushi | 2005年03月14日 15:42
日時: 2005年03月14日 15:42