![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
csvファイル出力時に文字化けしてしまう。
csvファイルを作成して、保存してExcelで開くと文字化けしてしまいます。
保存するときに「右クリック→ファイルの保存」ではなく、「左クリック」するとデータがブラウザ上(FireFoxで確認)で観れるのですが、その時は文字化けしていません。
また、保存したファイルをTeraPadで開くと文字化けしませんでした。
ファイルの保存方法は、
$csvFile = 'entry.csv';
$csvData = "適当なデータ・・・・・・・・・・・・・・";
$fp = fopen($csvFile, 'ab');
flock($fp, LOCK_EX);
ftruncate($fp,0);
fwrite($fp,$csvData);
fclose($fp);
htmlのヘッダーには、
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
を入れております。
以上よろしくお願いします。
No.2ベストアンサー
- 回答日時:
ヘッダにutf-8って書いてあってfirefoxでちゃんと見えるのなら、
そのcsvファイルはutf-8で書いてあるんでしょう。それをExcelで開
けば、見えないのが当然です。Excelはutf-8非対応ですから。
phpのマニュアルで「マルチバイト文字列」に関するあたりを読み、
日本語版Excelで対応できるエンコーディングで出力して下さい。
具体的にはfwriteの中で$csvDataを加工してやるだけでいいんじゃ
ないですかね。ザッと見た感じでは、Shift_JISかutf-16あたりがよ
さそうです。
私的には、csvをExcelで開くのは負け組ですけどね。あいつは勝手
な解釈で余計なことをするから。
参考URL:http://php.benscom.com/manual/ja/book.mbstring.php
早速の回答ありがとうございます。
>Excelはutf-8非対応ですから。
そうなんですね!!
だからか~
>私的には、csvをExcelで開くのは負け組ですけどね。あいつは勝手
な解釈で余計なことをするから。
え?そうなんですか??
ただ、今回はユーザーさんに使ってもらうプログラムを作りたいので、Excelが一番扱いやすいかな~って思っています。
参考URLもありがとうございます。
fwrite($fp,mb_convert_encoding($csvData,'SJIS','UTF-8'));
と書き直して旨く行きました!!
ありがとうございます。
No.4
- 回答日時:
ExcelはUTF-8には対応していないようです。
Shift-JIS、UTF-16等で保存してください。
回答ありがとうございます。
そうみたいですね!全く知りませんでした。
#2さんの方法で旨く行きました!!
ありがとうございます。
No.3
- 回答日時:
確実にやるならPEARのSpreadsheet_Excel_Writerあたりで
直接xls形式にデータを吐き出してやってください。
http://pear.php.net/manual/ja/package.fileformat …
なおその場合でも文字形式はSJISに変換してやる必要はあります。
回答ありがとうございます。
うっ!PEARですか・・・まだPHPも覚えたてですので、折角の参考URLを見ましたが理解できませんでした。。。
PHPが解ってきたら挑戦してみますね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- HTML・CSS docxをmht形式で保存したファイルをedgeで開くと文字化けする 1 2022/07/29 13:14
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- HTML・CSS CSSファイルの日本語コメントが文字化けしてしまう 3 2022/12/26 15:50
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーバーにアップすると文字化...
-
文字集合範囲外の文字とパーセ...
-
phpファイルで文字化け
-
PHPExcelバッファへの書き込み...
-
PHPで韓国語の表示がうまくいき...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
PHPで新しいウインドウで開く命...
-
別ファイルの変数を呼び出した...
-
バッチを用いたフォルダの自動移動
-
php.ini を設定を変更すると再...
-
form actionで二つ送信先を指定...
-
phpの中でphpを書けないか
-
「@$変数」の「@の意味は?」
-
リダイレクトでPOST
-
PHPで、エラーがない場合のみ画...
-
フォームで戻った際に入力済み...
-
Subversionのリポジトリの削除
-
PHP8を使うと、大量のWarningが...
-
VBSの「MsgBox」について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EclEmmaレポートのエクスポート...
-
PHPで韓国語の表示がうまくいき...
-
PHPExcelバッファへの書き込み...
-
文字コード変えたら、fopenでき...
-
HTTPヘッダはメタタグにも記述...
-
Eclipseで文字化け
-
csvファイル出力時に文字化けし...
-
phpで動的タイトル
-
文字集合範囲外の文字とパーセ...
-
phpログファイルの文字化けにつ...
-
PHPで「®」や特殊文字のエスケープ
-
phpフォームで文字化け
-
Google Chromeで文字化け
-
発生した文字化けに対する対処
-
サーバーにアップすると文字化...
-
GEEKLOG(ギークログ) 文字化け
-
PHP time()に関しての質問です
-
文字化けについて
-
UTF8のページでIEがシフトJISを...
-
batファイルでうまく動かないプ...
おすすめ情報