本当に解決できているかは知らない。
WordPressのはてな記法プラグインがそこそこ便利で愛用しているんだけど、以下の3つの問題がある。
- title= を用いたタイトル取得で文字化けする
- runPHPとの相性が悪い
- キャッシュを有効化するとおかしくなることがあるっぽい?
とりあえず1つめの問題を適当に解決してみた。ベースになっているperlのText::Hatena 0.16のAutolink/HTTP.pmをいじった。
具体的には、最後のif分岐にelseで
- my $title2 = Encode::decode("Guess", $title);
- $title = Encode::encode("utf8", $title2);
をいれてやった。
Encodeを使うため
- use Encode;
- use Encode::Guess;
も指定してある。
今まではSJISやEUCJPな文字コードのサイトのタイトル取得にこけていた気がするが、うまく動くようになった気がする。良かった脳。
次はrunPHPとの相性だな。
これについてはおとなしくはてな記法のOn/Offをエントリごとにできるようにするのがいいかなぁと思っている。runPHPが明示的にOnにしないと動かない仕様なんで、それをマネして逆をやればいいと思うんだが……ちょっとメンドイかな?まぁ気が向いたらやろう。
ちなみに、perlでUTF系は色々漁ったけど、最終的に有益だった情報はこれ→perl5.8のUnicodeサポート
マジ助かった。
あとxorの人にもアドバイスもらった。マジ感謝。