PHPでダウンロードさせたCSVファイルが文字化けする
サーバ上に置いているCSVをダウンロードさせたところ、何故かCSVファイルの中身が文字化けする現象に遭遇しました。
因みに今回の環境は以下のとおりです。
CSVをダウンロードさせる部分のソースコード
header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=hoge.csv");
この現象は納品先のサーバで起きていました。
環境依存かと思い環境を見比べてみても問題なく、ソースコードのDiffをとってもよく分からず...。
全く原因が分からずに調べていると以下のページで原因がわかりました。
サクラエディタで該当ファイルを開き、BOMの有無を見てみるとしっかりと付いてました。
BOMを外してソースをUPし、再度ダウンロードしてみると文字化けしていないCSVファイルをダウンロード出来ました。
これだけで結構な時間ハマってました...。 ぱっと見問題なさそうなだけに厄介ですね。