今データベースの内容をCSVファイルに入れて、そのCSVファイルをダウンロードしようと思っているのですが、ダウンロードしたCSVの日本語の部分が文字化けしてしまいます。コードは以下になります。
<?php //①データベースの内容を配列に入れる $array=$paging->sql_show(); //②sample.csvに配列を入れる $file = fopen("sample.csv", "w"); foreach ($array as $key => $value) { mb_convert_encoding($value,"SJIS", "UTF-8"); var_dump( fputcsv($file, $value) ); } //③sample.csvをページに出力 $fp = fopen("sample.csv", "r"); while ($line = fgets($fp)) { echo "$line<br />"; } fclose($file); fclose($fp); ?> <a href="sample.csv">ダウンロード</a>
ダウンロードしたCSVファイルをテキストエディターで開くを日本語もそのまま出てきますが、なぜかエクセルとして開くと日本語の部分だけ文字化けしてしまいます。ちなみに③で出力した結果日本語もうまく表示されます。
③は内容をechoしているだけなので、問題はおそらく②にあると思って色々調べてはいますが、なかなか解決できません、、、
どこが問題なのでしょうか?
お願いします!ぜひみなさんの知恵を貸してください(>.<);;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。