[Home] GIFアニメ工房簡単GIFアニメ講座[TB]使用サイト紹介Exciteブログでトラックバックが文字化け解決策

« Happy * LifeMainYahoo!JAPAN(ヤフーディレクトリ)に掲載されました! »

当ページの概要

MTブログからExciteブログにトラックバックを送ると文字コードの違いで文字化けしてします。UTF-8でトラックバックを送るように改良しなければいけないみたいです。

Exciteブログでトラックバックが文字化け解決策

簡単GIFアニメ講座[TB]使用サイト紹介

Exciteブログでトラックバック文字化け騒動

早速トラックバックをしてみたところ見事に文字化けしちゃいました(汗)。調べてみたら文字コードの違いによるものだそうです。私のMTブログの文字コードは「Shift_JIS」、トラックバックを送ったExciteブログは「UTF-8」でした。本来は、トラックバックを「UTF-8」で送らなければいけないようですが、MTブログでは、指定した文字コードで送っちゃうみたいなのです!

一つUTF-8でブログを運営しているんだけど、IEのバグにより問答無用で文字の書体が「明朝体」になってしまうんですよ!これは、一大事「ゴシック体」好きの私にはとても堪えられない!そんなわけで、Shift_JISかEUC-JPでの運営になっちゃうわけなんです。で、WindowsなのでShift_JISの方が扱いやすいわけなんですよー♪でも、それだとなんの解決にもなんないんですよね(汗)。

トラックバックをUTF-8で送信することで、文字化け解決

見つけました!トラックバックをUTF-8で送信する方法を!

先日の座談会でちらっとTrackbackの文字コードの指定方法について話が出ました。その時、送るときはUTF-8で統一しませんか?という案が出ました。参加したメンバーが軒並みすごい方々だったので、この案を実装しても文句出ないかなと思い、早速実装した日本語化パッチをアップしました。早速といいながら、座談会から既に1週間経ってしまいましたが。ということで、Movable TypeのTrackbackはUTF-8で送るのを最終案としたいところ。賛同が得られたらウレシイです。ソース読めばわかんだろと思って書かなかったけど、仕様はこんな感じ。

  • 送信時
    • 文字コードはUTF-8で送信
    • Content Bodyに「charset=utf-8」を付与
  • 送信時
    • charsetパラメータがあればそれを信用
    • charsetパラメータが無ければタイトル等から文字コードを推測

ということで、送信時にUTF-8にするようになっただけで、他のコードで送られても問題ないし、送られる側のサイトで文字コード判別の助けになるようにcharsetパラメータも送ってるし、いろいろと考えています。RubyでUTF-8の扱いが面倒とか言われちゃうと、すみませんとしか言いようがないですが。

ということですが、問題のコードは、MTのバージョンが違うのか、違う形で追加されていたりされていなかったりするので引用しませんでした。「MT Version 3.151-ja」では、「lib/MT.pm」の996行目付近を追加・修正するだけで対応出来ました。

## 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;

Posted By PONTA : 2005/05/08-23:21

同一カテゴリリンク

« Happy * LifeMainYahoo!JAPAN(ヤフーディレクトリ)に掲載されました! »

コメントとトラックバック [最新5件]
TB-491::2007/06/06-15:56:: K's Labo

現在、私が開発した「超簡単!!アマゾン アソシエイト応援サイト:Azmix」の...

MSG-1089::2007/06/06-14:39:: かわぐち

はじめまして、かわぐちと申します。
うひょ~、貴重な情報ありがとうございます。
おかげさまで、ブログ開設依頼の悩みのタネが
解消できちゃいました。

本当に、ありがとうございます。

これからも、よろしくお願いします。

TB-13::2005/07/03-01:23:: トガノ日記

私の送っているトラックバックが文字化けを 起こしていることを発見しました。 調べ...

動画アニメ入門はGIFアニメーション工房で!

©2004-2011::無料ホームページ素材作成ならGIFアニメ工房で!