はてな日記が謎の文字化けをしている件
http://d.hatena.ne.jp/hayamiz/20090116/1232136310 この件についてはまあこんなものだろうか。
で、そんなことと無関係に本題は、
>理由はまああれです。 Script Languages とか Lisp:繧医¥縺ゅk隱、隗」 とか Lisp:繧医¥縺ゅk豁」隗」 とかよめばいいんじゃないでしょうか。
この文字化けはいったいなんなのか、ということであり。まずそもそも、これってもとの記法ではどうなっているのか。さらに謎なのは、どうやったらこの文字化けが出現するのか、ということです。
後者について、いろいろやってみてわかったのは「よくある誤解」という文字列(UTF-8)をJapanese Shift-JISだと解釈した上でEUC-JPに変換すると「繧医¥縺ゅk隱、隗」」になるということでした。なーるほど、そりゃすごい。本来関係ないShift-JISが出てくるのに気付くのは我ながらちょびっと冴えていると思いました。
でも、なんでこういう記法になるか、というのが謎なのですね。リンクを遡ってyoriyukiさんのhttp://d.hatena.ne.jp/yoriyuki/20070103/p1まで辿るとここも化けているのだけど、前は化けていなかったような気がする(わたしの記憶なんてアヤしいもんだが)。なぜだろう?
はてなの日記はぜんぜん書いていないのでよく知らないのだが、こういう文字化けはオートリンクの機能だろうと想像がつく(WYSIWYGがないので、ただのリンクでもサーバが余計なことをした、ということは考えづらい)。ありそうなのは、http://…とURLを打ち込んだ場合、当該のページをフェッチしてタイトルを抽出し、リンクを生成しているというパターンだろう。それでも謎として「なぜShift-JISか?」というのが残る。ちなみにpractical-scheme.netの返すヘッダにはcharset=utf-8と書かれている。文字コード判定に失敗したのだろうか。それとも、サーバの返すContent-Typeを信用せず、ページそのものにmeta要素で文字コードを指定された場合だけ信じて、残りはとりあえずShift-JISにする、とでもしているのだろうか。それともpractical-scheme.netが2007年当時はShift-JISを使っていた等の理由でおかしくなったのだろうか……。
にしてもよくわからないとしか言いようのない。というか、はてな日記ってeuc-jpなのね。そこにびっくり。
2007年ならもうutf-8に移行してたはず。でもその前はeuc-jpで、shift-jisは使ってたことないので、謎ですね。