PHPでBOM付きUTF-8 
2009/2/25 水曜日 12:36:06
お久しぶりです
のびーにょです
ちょっとはまったのでTips的に
ZIPをダウンロードさせるプログラムを書いてました。
右クリックして保存。とかじゃなくてアクセスしたらダウンロードするような奴です。
で、サーバ側でZIP生成してそれをダウンロードさせようとしてたんですがファイルサイズはサーバに保存した内容と同じぐらいなのに解凍すると中身が少ない・・・
解凍ソフトはLhaplus使ってたんですがWINRARとか使って解凍すると中身が全部ある という現象が発生。
色々調べてたんですけど結局わからず・・・
みたいになってバイナリエディタで比較してみると・・・
先頭に何やらついてますね・・・
EF BB BF
ってのが3つぐらい
これBOMのエンディアンじゃないですか・・・
ソース調べてみるとBOM付きUTF-8で保存されてるファイルが3つ・・・
まさにこれじゃないですか・・・
BOM無しUTF-8で保存しなおして実行すると何事もなかったかのように解凍できる
PHPでBOM付きUTF-8は使わないに越したことはないというお話でした
http://bugs.php.net/bug.php?id=22108
まだバグなおってないみたいだしね・・・