====== 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]]へ戻る。