====== PHPと文字コード ======
PHPを利用しているときに、文字コードが思ったように扱われないという問題が起こることがある。mbstrings関連の処理において発生するこの種の問題は、設定で回避することが出来る。
====== 回避方法 ======
php.iniまたは、httpd.confあるいは.htaccessに次の設定をすればいいだろう。
(httpd.confや.htaccessは当然、httpd経由でPHPを利用する場合のみ有効。)
default_charset = "EUC-JP"
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = pass
php_value default_charset EUC-JP
php_value mbstring.language Japanese
php_value mbstring.internal_encoding EUC-JP
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass
これは、内部でEUCを使っている場合である。UTF-8を使っているなら、上のEUC-JPをUTF-8に置き換えればいい。この設定がないと、例えば[[http://japan.nucleuscms.org/|Nucleus]]のxml-rss2.phpが生成するRSSの文字コードが正しくUTF-8にならずに、妙な壊れたページを吐き出すなどの障害となることがある。
PHPの生成するページの文字コードがおかしい場合には、このあたりの設定を見直してみるとよい。
[[その他:Tips]]へ戻る。