csvファイルを読み込んだ時に文字化けする時、文字コードの変換を行うと解決することを学びました。 また、ファイル全体を一度読み込んで変換して一時ファイルを作り、それを読み込む方が無駄がないということも学びました。
setlocale(LC_ALL, 'ja_JP.UTF-8'); $data = file_get_contents(".csv"); $data = mb_convert_encoding($data, 'UTF-8', 'sjis-win'); $temp = tmpfile(); $meta = stream_get_meta_data($temp); fwrite($temp, $data); rewind($temp); $file = new SplFileObject($meta['uri']); $file->setFlags(SplFileObject::READ_CSV); $csv = array(); foreach($file as $line) { $csv[] = $line; } fclose($temp); $file = null; var_dump($csv);