エディタなどで文字コードを指定する際「BOM有り」と「BOM無し」という選択肢があります。この「BOM」とは何かをまとめておきます。
BOMとは?
-
まずBOMとは「バイトオーダーマーク (byte order mark) 」の略語となります。
バイトオーダーマークとはUnicode形式のデータを「ビッグエンディアン」、「リトルエンディアン」のどちらで保存しているのかという情報をデータの先頭に付与する情報のことです。
UTF-8の場合、先頭に3バイトのバイナリデータ「0xEF 0xBB 0xBF」が付与されたものが「BOM有り」の状態。付与されていない場合が「BOM無し」の状態となります。
どういう場合に「BOM有り」、「BOM無し」を使い分けるか?
- Unicodeの規格ではBOMは推奨していません。
- Web制作などでHTMLやPHPなどをエディタで編集する際はBOM無しを選択した方が一般的には問題は起こりにくいので無難です。但し、必ずしもBOM無しが正解というわけではないのは認識しておきましょう。
- 「Microsoft Office Excel」などはBOMがないとUTF-8だと認識できず、種々の問題が起こる。
- 基本的にはアプリケーション側でBOM有りが推奨されているケース以外ではBOM無しをデフォルト設定しておけば良いかと思われます。