結論からいうと、テキストの先頭にBOMをつければ解消される。
ということで、各ブラウザ(IE, Safari, Firefox, Chrome, Opera...)でファイルを出力するときに文字化けさせない方法をまとめる。
BOM(Byte Order Mark)とは
そもそもBOMとはなんぞや?
Unicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことである。このデータを元にUnicodeで符号化されていることおよび符号化の種類の判別に使用する。
バイトオーダーマーク - Wikipedia
具体的に説明すると、Unicodeが登場したころ各国でいろんな文字コードが使われていた。日本ならSJIS、アメリカならASCIIといった具合に。
そこでUnicodeなのかSJIS,ASCIIなのかを明確に区別する必要があり、テキストの先頭に特定のコードを埋め込み区別できるようにしていた。そのコードがBOM。
ちなみにUTF-8の場合は「0xEF 0xBB 0xBF」という3バイトを先頭につける。




