よくある質問
BOMとは何ですか?
BOMはUTFで符号化されたファイルの始めにあるデータストリームです。 ほとんどのUTFドキュメントは符号化形式を判断する為のサインとしてBOMを含んでいます。 (UTFは文字符号化形式の1つです。UTFとUnicodeについて理解するにはUnicode, Inc.をご覧下さい。)
なぜBOMを取り除かなければならないのですか?
いくつかの古いインターネットプロトコルとアプリケーションではそれらの使用が許可されていない為です。 例えば、もしあなたがUTF-8で符号化されたウェブページを作ったら、いくつかのユーザエージェントはBOMを単なる空白文字列として表示してしまいます。
またPHP等のサーバサイドスクリプトを使用している場合、いくつものファイルを読み込んでプログラムを構成しています。 もし、それぞれのファイルにBOMが含まれていた場合、結果としてBOMが重複して出力される可能性がありますが、これは防がなければなりません。
なぜnon-BOMは必要なBOMまでも削除してしまうのですか?
non-BOMは知的なプログラムではありませんので、あなた自身がBOMを削除するか否かを判断しなければなりません。
最新のユーザエージェント等はBOM無しで符号化形式を自動判定する機能を備えていますが、現在のバージョンのnon-BOMにはそのような機能は備わっていません。 従って、一度BOMを削除してしまった場合、non-BOMに再びUTFドキュメントとして認識させる為には、手動ないし前期のような機能を搭載したテキストエディタを用いてBOMを追加するしかありません。