この記事の概要
ある時点で突然おきた、Nucleus(UTF-8)の文字化け。
結局.htaccessでのPHP設定で、文字コードまわりを指定して解決しました。
<IfModule mod_php4.c>
php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass
</IfModule>
※解決後、さらに次のように変更して、今の記述に落ち着いた
mbstring.languageを neutral から Japanese に変更
mbstring.http_output を UTF-8 から pass に変更し、output_buffering, output_handler を削除
でもこんな指定をしなくても大丈夫だった時があったのはなんでだろう・・・謎だ。
→XREAはサーバー側の設定が勝手に変わってることがあるようだ。PHPのバージョンアップ時に関係あるかも。
文字コードが内部エンコーディングと出力で別々なのはめんどくさそうなので統一して、そのままpassするようにしています。 http_input auto にしてますが、これは detect_order がデフォルトで各種文字コードに対応してるのを前提にしてます(日本のサーバーなら問題ないと思う)。そうでない場合は detect_order も設定したほうがよさげ。
languageは、メール送信時、JIS変換するかチェックするのに使われるようです(勝手に変換してくれるなんて知らなかった・・)