fc2 blog からのトラックバック文字化けの謎
某所でfc2から来るtrackbackが文字化けしてるってことで、自分のfc2テストブログから送ってみたけど平気だったり。なぜなんだーどうしてー
いやぐぐるとMTでの対処法はあるっぽいんだけど、なんで受信側で対策しなきゃいけないのかなーとか。いやMT受信側の問題ならそーなんだろうけど(自動認識が甘い??? そもそも自動認識って話なのか???)、送ってくる側なんじゃないんかねこれは。
ということで散々テストした結果、驚愕の事実が....
どうやら、fc2ではTrackbackで送ってくるエントリ本文の「概要」を作るときに、ダブルバイトを考慮せずにバイト単位でぶったぎっているのではないかと.....本当かこれは?
えーと、こういうエントリを立てて、MTにTrackbackを送るとokです。
--- エントリ本文 --- 1234567890123456789012 3456789012345678901234 56789012345678901。。。 おまけまけまけ --- ここまで ---
受信結果は以下の通り。最後のあたりが省略されてます。文字化けしていません。
--- MT受信結果 --- 1234567890123456789012 3456789012345678901234 56789012345678901。。... --- ここまで ---
次に、こうやって途中に半角文字一個増やすと(2行目)、受信側が化けます。
--- エントリ本文 --- 1234567890123456789012 1 3456789012345678901234 56789012345678901。。。 おまけまけまけ --- ここまで ---
受信結果は化けてるので画像で

なお、あの半角部分を増やしていくとこんな感じ。
1 化ける
12 化ける
123 OK(受信側のラストは 「01。...」)
1234 化ける
12345 化ける
123456 OK(受信側のラストは 「01...」)
とゆーわけで、たぶんですが切れ目の文字がダブルバイトにかかってるかどうかという感じなのではないかと....
半角3文字ずつってのがよくわかんないんだけど、なんかの内部処理かしら。
いやMT側で変なコードがきたときにちゃんと処理すりゃいいっつー話なのかもしれませんが...エラーだから変換せずに(UTF-8とみなして)流し込んでるんだろうなぁ。
# ちなみにEUC で「。」は A1A3 かな? まぁどの文字でも変わらないだろうけど
(追記)
つか送ってくるのはもっと長いんだけどMT側で切っていて、その時の処理がバグってるという可能性があるのか。
うーむ....これ以上調べるのはもう面倒だあああああw
素直にtrackback.pmを修正すべきなのかなぁ.....
