« ダ、ダイジョブヵ?; | メイン | PHPスクリプトの真っ白表示対策。 »

2008年01月11日

●マルチバイト変換(mbstring)の悪夢。

マルチバイト変換(mbstring)の悪夢。新自鯖のPHP5環境でムリクリXOOPSを動かしているのでつが、WebLinksモジュール(Ver 0.97)FEEDデータが取得できなかったので、試しにヘッドラインモジュールxhld(Ver 3.07)を導入して実験してみたところ、全てのFEEDデータが文字化けしちゃってますて。_| ̄|○

該当サイトのソースを見た細君に指摘されて気付いたのでつが、ヘッドラインの読み込み(RSS/RDF)はUTF-8で読み込んでいるが、EUC-JP変換されずに文字化け(UTF-8)している状態(他の項目はEUC-JPで日本語表示)になっているよーですた。

以下に備忘録として対応履歴を残しまつ。

まず、文字化けといへば・・・と、以前に別の鯖でXOOPSを導入した際に
施した.htaccessによる文字化け対策をやってみたがダメ。
マルチバイト変換(mbstring)の根本設定をやってみよーと、
/etc/php.ini の設定を行ってもみたがダメ。
(まぁ、コレわ同じコトだらかダメっちゃーダメだわな;)

その後、散々ネットで調べた結果、最近のPHP4やPHP5にわ必ず
入ってるって書いてあったから盲点だったんだけど、どーやら
mbstring自体が鯖に入っていない悪寒。とりあへず、下記PHP
スクリプトをつくって、テケトーなディレクトリにアップしてアクセス。

<?php
phpinfo();
?>

「mbstring」に関する項目があれば導入済みらすぃのでつが、
検索かけたら見事にヒットしない・・・〓■●
しょーがないんで、mbstringをインスコしますた。

$ yum -y install php-mbstring

これでイチヲ、UTF-8でエンコされているFEEDデータわ
読み込めたんでつが、Shift_JISでエンコされている、
このBLOGのFEEDが読み込めねぇ。。。凹○コテッ

WebLinksモジュールのVer 0.97でわFEEDのエンコード指定が
できなかったので、Ver 1.83を導入。Happy Linux モジュール(Ver 1.22)と、
RSS Center(Ver 0.71)もあわせて導入して動かしてみたところ、
ようやく無事にFEEDを取得することができますた。
この程度のトラブルで1日ムダにしちったぃ<(; ̄ ・ ̄)=3 フゥ...

調べている途中で通りすがったのでつが、海外レンタル鯖などでmbstringが
入っていない方わ、mbstringエミュレータなるものがあるそーでつ。
xhldモジュールへの組込方法が載ってるサイトをみつけたので、紹介しておきまつ。

》XOOPS.JP - ヘッドライン文字化け対策 xhld編