![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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ランキング
-
PHPExcelバッファへの書き込み...
-
onedrive にexcelファイルをア...
-
.phpと.incファイルの違いはな...
-
トランザクションが原因?DBに...
-
フォントの色を変えるには?
-
現在位置より2つ上のディレク...
-
CFileDialogの最初のディレクト...
-
VBSの「MsgBox」について
-
HPを開くとダウンロードページ...
-
3つ以上の論理積は利用可能なの...
-
php文字列中のシングルクオート...
-
PHPのif文でその処理を途中で抜...
-
MySQLでのdeadlockをPHPで検出...
-
.phpファイルが、表示されない
-
FTPコマンドでディレクトリごと...
-
C# メール送信ついて困っています
-
URLの変わらないページをPHPで...
-
「@$変数」の「@の意味は?」
-
WinとLinux両方で通じる書き方...
-
透過PNGが透過されない!!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字集合範囲外の文字とパーセ...
-
(mysql_set_charset)PHPでINSER...
-
EUC-JPのサイトをSHIFT-JISに変...
-
EUCからshift_jisに書き換えに...
-
PHPで「®」や特殊文字のエスケープ
-
PHPで韓国語の表示がうまくいき...
-
携帯の文字化け
-
PHPでセッション導入後に初めて...
-
mysql→EUC-JP、php→UTF-8の時の...
-
サーバーにアップすると文字化...
-
文字コード変えたら、fopenでき...
-
サーバーにアップすると文字化...
-
ファイルの文字コードを調べる...
-
wordpressがMySQLに日本語デー...
-
フォームからPOSTされた値をXML...
-
海外で作成されたPHPスクリプト...
-
フォーム入力のエンコーディン...
-
HTTPヘッダはメタタグにも記述...
-
MySQL+PHPサイトでSJISからEUC...
-
自作cgiのページがIE10で文字化...
おすすめ情報