すごく便利に使っているWordPressだけど、現在のバージョンではMySQL3.23系にはインストールできない(MySQL4以上に対応)。やむなく別のブログソフトを使うことにした。使用したのはb2evolution。こちらもメジャーなブログソフトの一つだ。
「使う」といってもブログを書きたいわけでもない。やっぱりまたxmlrpcだ。今回はブログソフトの機能だけを使用することにしている。具体的には・・・。
○投稿フォームは別途用意し、xmlrpcでブログへ投稿
○記事一覧は最新のものだけを使うと仮定して、RSSを取得・編集して使用
○記事詳細表示は、xmlrpcで取得して別画面で表示
つまりブログソフトのフロントエンド部分は基本的に使用しない。データの格納庫としてブログを使用し、xmlrpcを介在してアクセスする、という方法を採用した。意外といけてる方法だ(と思う)。
で、b2evolutionにxmlrpc接続しようと記事をpostしたが文字化けしてしまった。またしても???だ。ちなみに今回もsourceforgeのxmlrpc.incを使用している。以前xmlrpc.incのバグの記事を書いたけど、対応済みのクラスを使用しているにもかかわらず、だ。
やむなくソースを読んでみた。どうやらb2evolutionのxmlrpcのデフォルト文字セットがISO-8859-1としてセットされているようだ。それじゃぁダメだよね。本当は日本語対応状況とかいろいろ調べないといけないのだが、とにかく、こんなふうに文字コードがセットされていることが悪いことに間違いない。で、変更した。変更したファイルは「inc/_misc/ext/_xmlrpc.php」。このファイルの235行目あたり。
$xmlrpc_internalencoding=’ISO-8859-1′;
この記述をUTF-8に変更して再投稿し、無事日本語が通ることを確認した。
諸々調べたわけではなくて場当たり的なものなのだが、これでとりあえず対応できる。ソースコードを読むと、「ひょっとしたら、またxmlrpc.incのせいかも」と思える箇所が多いにあるのだが、とりあえず対応できることがわかったのでこれで問題解決とした。でもまぁ、まだどちらが悪いのか調べ切れていない。