###前提・実現したいこと
cakephp2でcsvファイルを読み込んで、dbのデータを書き換えるバッチ処理を作成しています。
SplFileObject::READ_CSVでファイルを読み込めはするのですが、数字や記号は正しく配列に格納されているにも関わらず日本語の部分だけ空文字になってしまいます。
###発生している問題・エラーメッセージ
var_dumpしたらこんな感じでした。ちなみにターミナルの出力結果です。
[2]~[5]は日本語の値が入っていて、[6]は「orほげ」と入れたのですが「ほげ」だけ消えました。
また文字を""でくくってみても、""だけ残って日本語だけ表示されませんでした。
array(10) { [0]=> string(5) "10644" [1]=> string(6) "125895" [2]=> string(10) "" [3]=> string(6) " " [4]=> string(28) " " [5]=> string(8) "" [6]=> string(6) "or" [7]=> string(1) "-" [8]=> string(0) "" [9]=> string(1) "4" }
###該当のソースコード
$file = new SplFileObject($filePath); $file->setFlags(SplFileObject::READ_CSV); foreach($file as $line => $item){ if(!empty($line)){ var_dump($item); } }
###試したこと
文字コードの設定の問題かと思い、csvのファイルを文字コードをutf8にしてみたり、setlocale(LC_ALL, 'ja_JP.UTF-8');を付け足してみましたが、変化なしでした。
###補足情報(言語/FW/ツール等のバージョンなど)
php7 cakephp2 実行環境はubuntu16.04です。
どなたか何か手掛かりになるようなことを教えていただけると幸いです、、、
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。