文字列の文字コードを変えてくれる関数のmb_convert_encodingですが、若干挙動不審な所もあり。
サーバーのPHPのバージョンが古いからかもしれないので、本当は懸念事項ではないかもしれないけど、一応メモ。
現在発生しているのは、mb_convert_encoding($value,’SJIS’,'auto’);
で変換文字列がUTF-8の場合、たいていはうまくいくが、たまに文字化けがおこる。
今回はXMLをパースする途中で起きたことで、XML吐き出しをしているときにUTF-8に変換(mb_convert_encoding($value,’UTF-8′,’auto’);)しているので、表示する際にShift_jisにしたい場合は直接、mb_convert_encoding($value,’SJIS’,'UTF-8′);として変換してあげるのが安全っぽい。
どうやら、UTF-8->Shift_jisの変換で自動変換だと途中でこける可能性がある。
[関連性があるかもしれない記事]
