fgetcsv 半角カナ

PHP5 fgetcsvで詰まったよ。

よく言われてる文字化け。

PHP5のfgetcsvは文字コードロケールに影響されるわけだけど

setlocale(LC_ALL, '0'); // 現在のロケールを取得

まぁ、よく知らない。


よく使われるのは、

$data = file_get_contents( 'import.csv' );
$data = mb_convert_encoding( $data, "utf-8", "SJIS-win" );
$fp = tmpfile();
fwrite($fp, $data);
rewind($fp);

なんていう文字コード変更したテンポラリファイルを使う方法。


これも制限とか面倒だったのでCSVを開いてUTF-8で保存したものを使った
んだけど半角カナだけ先頭が文字化けしてしまう。
バイトが欠けてるんだろうなーと思って試しに
全フィールドに "(ダブルクォート)付けてみたら無事に読み込めた。

"文字列"


半角カナだと囲い文字いるんだね〜 というかxlsから変換するとき
付けてくれればいいのに。。


ちなみに、fgetcsvで囲い文字を空にしてみたらエラーでました。