ダウンロードしたCSVファイルが文字化けする問題

| コメント(0) | トラックバック(0)
CSVファイルをダウンロードしたら文字化けするとお客様から連絡があり調べたところ、テストサイトではSHIFT_JISでダウンロード出来ていた所が何故かUTF-8でダウンロードされているようになってしまっていました。

UTF-8のファイルをSHIFT_JISで開きなおすと一応文字化けは直るのですが先頭に「・ソ」という表示が知らぬうちに付いていました。
CSVファイルをダウンロードしたら文字化けするとお客様から連絡があり調べたところ、テストサイトではSHIFT_JISでダウンロード出来ていた所が何故かUTF-8でダウンロードされているようになってしまっていました。

UTF-8のファイルをSHIFT_JISで開きなおすと一応文字化けは直るのですが先頭に「・ソ」という表示が知らぬうちに付いていました。

インターネットで調べてみたら原因は・・・

UTF-8で書かれているPHPファイルをメモ帳で編集して保存をすると、先頭にBOM(Byte Order Mark)が負荷されて保存されてしまいます。
このBOMはPHPのechoでheaderを出力する前に出力されてしまうのでCSVにもこのBOMがきっちり先頭に付いてきちゃうという事でした。
CSVにBOMが付いてくるとSHIFT_JISで開かれるはずのCSVファイルがUTF-8で開かれてしまうので今回の現象が起きたというわけです。

というわけで改修作業ですが、BOMが負荷されたPHPファイルを見つけ出して先頭のBOMファイルを取り除いてあげます。
このファイルを上げなおしてあげると、きちんと文字化けせずにCSVのダウンロードできるようになりました。

UTF-8で開発している時はメモ帳で編集するなという教訓が出来ました・・・

今回は以下のサイトを参考にさせていただきました。
Keep It Simple, Stupid!
http://takesita.seesaa.net/article/96553793.html

Sun Limited Mt.
http://www.syuhari.jp/blog/archives/384

トラックバック(0)

このブログ記事を参照しているブログ一覧: ダウンロードしたCSVファイルが文字化けする問題

このブログ記事に対するトラックバックURL: http://www.okushin.co.jp/mt_co_jp/mt-tb.cgi/63

コメントする

カテゴリ: