shift-jisのCSVファイルを取り込む際に、fgetcsv関数を使用したときに「能」という文字で
下手をこいて、SQL文が実行できなかった罠。
googleって対処を探したところ、csvファイルの文字コードを変更させて、それを fgetcsvするなどが見つかった。
$buf = mb_convert_encoding(file_get_contents(”$CSV FilePath”), “utf-8″, “sjis”);
$fp = tmpfile();
fwrite($fp, $buf);
rewind($fp);
手順としては、
- CSV ファイルを一度読み込む
- 文字コードをコンバート
- テンポラリファイルを作成
- コンバートした内容を書き込む
- 書き込んだファイルの、ファイルポインタを先頭に戻す
- で、fgetcsv で読み込みを行う