文字コード : してログ

SJISのテキストファイルなどで機種依存文字(①,②,③,Ⅰ,Ⅱ,Ⅲ,㈱,㎝ など)を含むデータを読み込むときに、これらの文字が「?」に化けないようにします。例えば、Windowsで作成されたCSVファイルですが、次のように変換してしまうと「?」に化けてしまいますので要注意です。

mb_convert_encoding($str, 'UTF8', 'SJIS');

機種依存文字が無い場合はこれでもうまく行きますが、それが含まれる場合は次のように変換します。

mb_convert_encoding($str, 'UTF8', 'SJIS-win');

もしくは、

mb_convert_encoding($str, 'UTF8', 'CP932');

当たり前だが、UTF-8以外に変換すると化けるし、「~」などダメな場合もあり、オールマイティじゃないので注意です。そうした場合は、予め置換しておくなどの対処が必要かと思います。