PHP の readfile でファイルをダウンロードさせると破損(文字化け)する
PHP の readfile (に限らないけど)を用いて、ダウンロードのスクリプトを書いて、いざダウンロードさせるとファイルサイズが3バイトだけ大きくなりファイルが正常に復元されない症状 $filename='hoge.bin'; header("Content-Disposition: attachment; filename=\"$filename\""); readfile($src_file); みたいなの 筆者が経験したのには、ソースに問題が無く、スクリプトの保存に問題があり UTF-8 でスクリプトを書いて保存する場合、ファイルの先頭にBOM(Byte Order Mark)なるものをテキストエディタが付加する このため、ダウンロードスクリプトの出力にBOMが付加されて出力されていた 「さくらエディタ」の場合、名前を付けて保存する時に「BOM」を付加するかのチェックがあり、選択する事が可能 もちろん、SJIS等の文字コードで、上記スクリプトを作成したときは問題は出ない