Amazon広告スクリプト(lilbox)の文字化け対応

Amazon広告スクリプト(lilbox)の文字化けの件解決しました。以前はPHP4.2を使い移管後はPHP4.4を使いました。PHPの設定ファイル(php.ini)は以前のものをそのまま使用したわけですがどうも文字化けしていました。


詳しい現象としてはエンコードがEUC-JPなhtmlに変換するのだが、エンコードタイプがEUC-JPではなくSJISに変換されて入ることが原因として挙げられます。
ここで、php.iniの設定を確認。
どこを確認するかというとmbstring.http_outputなるメソッドです。こいつがhtmlに出力する際に指定した文字コードに変換する機関です。
元のphp.iniを見ると

mbstring.http_output = SJIS

となってました。
これではcharsetでEUC-JPを指定していてもSJISに化けるわけです。
PHP4.3.x以降この辺がシビアに扱われるようになったそうですがいかんせん。。。
対処方法としてはmbstring.http_outputをSJISからEUC-JPに置換。

mbstring.http_output = SJIS

mbstring.http_output = EUC-JP

これでエンコード処理がEUCに指定されるので文字化けは解消されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です