CSVファイルをデータベースにインサートする場合など、エクセルで作ったCSVファイルがPHPで見ると文字化けしてしまう事が有ります。そんなときは以下のようにしてみて下さい。
<?php header("Content-type:text/html;charset=UTF-8"); //☆ mb_internal_encoding("UTF-8"); //☆ mb_language('Japanese'); //☆ $file = 'data.csv'; if( file_exists($file) === true){ //ファイルの存在を確認 $data = file_get_contents($file); //展開 $data = mb_convert_encoding($data, 'UTF-8', 'sjis-win'); //エンコードをUTF8へ $temp = tmpfile(); fwrite($temp, $data); rewind($temp); setlocale(LC_ALL, 'ja_JP.UTF-8'); //☆ while (($row = fgetcsv($temp, 0, ",")) !== FALSE) { print_r($row); } fclose($temp); } ?>
☆の部分が対処方です。基本的にはヘッダー部分に以下を書き加えると、ほぼ大丈夫だと思います。
header("Content-type:text/html;charset=UTF-8"); //☆ mb_internal_encoding("UTF-8"); //☆ mb_language('Japanese'); //☆
それでも駄目な場合は以下を書いてみて下さい。
setlocale(LC_ALL, 'ja_JP.UTF-8'); //☆