読者です 読者をやめる 読者になる 読者になる

@Satoh_D no blog

大分にUターンしたので記念に。調べたこととか作ったこととか食べたこととか

PHPでダウンロードさせたCSVファイルが文字化けする

サーバ上に置いているCSVをダウンロードさせたところ、何故かCSVファイルの中身が文字化けする現象に遭遇しました。
因みに今回の環境は以下のとおりです。

CSVをダウンロードさせる部分のソースコード

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=hoge.csv");

この現象は納品先のサーバで起きていました。
環境依存かと思い環境を見比べてみても問題なく、ソースコードのDiffをとってもよく分からず...。

全く原因が分からずに調べていると以下のページで原因がわかりました。

サクラエディタで該当ファイルを開き、BOMの有無を見てみるとしっかりと付いてました。
BOMを外してソースをUPし、再度ダウンロードしてみると文字化けしていないCSVファイルをダウンロード出来ました。

これだけで結構な時間ハマってました...。 ぱっと見問題なさそうなだけに厄介ですね。

今回参考にしたページ