Shift-JISで保存されたCSVファイルをUTF8で記述されたPHPスクリプトで処理する際に文字化けしてしまい、困った事例です。
下記のように記述して文字コードを変換していたのですが
[php]
//CSVを一行ずつ読み込み$lineに代入しています。
mb_convert_variables(‘UTF-8’, ‘SJIS’, $line);[/php]
ローマ数字「Ⅰ、Ⅱ、Ⅲ」などの文字が文字化けしてしまっていました。
調べてみるとSJISにはローマ数字や丸数字が含まれていない様子。
なのでSJISではなくSJIS-WINと指定する必要があるようです。
[php]
mb_convert_variables(‘UTF-8’, ‘SJIS-WIN’, $line);[/php]
解決にはこちらのサイトを参考にさせていただきました。
PHPの SJISと SJIS-WINの違い