fgetcsv()能でへたこいた!

 shift-jisのCSVファイルを取り込む際に、fgetcsv関数を使用したときに「能」という文字で
下手をこいて、SQL文が実行できなかった罠。

googleって対処を探したところ、csvファイルの文字コードを変更させて、それを fgetcsvするなどが見つかった。

引用元
http://blog.plastik.jp/archives/6

$buf = mb_convert_encoding(file_get_contents(”$CSV FilePath”), “utf-8″, “sjis”);
$fp = tmpfile();
fwrite($fp, $buf);
rewind($fp);

手順としては、

  1. CSV ファイルを一度読み込む
  2. 文字コードをコンバート
  3. テンポラリファイルを作成
  4. コンバートした内容を書き込む
  5. 書き込んだファイルの、ファイルポインタを先頭に戻す
  6. で、fgetcsv で読み込みを行う

他の参考サイト
http://akira.matrix.jp/index.php?ID=146&cID=4