バイト順マーク
BOMのことだよ
「Unicodeで書かれているよ~」な目印だよ
テキストファイルの先頭に付くよ
付いていない場合もあるよ
データの並び順(エンディアン)が書いてあるよ
簡単に書くよ
バイト順マーク(読:バイトジュンマーク 英:byte order mark)とは
「BOM(Byte Order Mark)」のこと。
用語の中身としては
Unicodeで書かれたテキストファイル
(中身が文字だけのファイル)の先頭に付ける「このファイルはUnicodeで書かれていますよ~」を示す目印データのこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・テキストデータ
・テキストファイル
・Unicode
・BOM(Byte Order Mark:バイトオーダーマーク)
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
テキストデータは「なんの装飾もされていない文字だけのデータ」です。
人間様が読んで全貌を解明できるようになっています。
「メモ帳ソフトで開いて中身が分かるデータ」と解釈しても かまいません。
テキストファイルは「中身が文字だけのファイル」です。
中身がテキストデータなファイルですね。
Unicodeは「UTF-8とかUTF-16とか」です。
……すみません。
豪快にウソを書きました。
「Unicodeが何か?」を説明しようとすると、その前に予備知識を いっぱい説明する必要があります。
そのため、このページで全部 説明するのは諦めます。
ちゃんとした意味が知りたい人は、用語「Unicode」の説明を ご覧ください。
雰囲気を感じ取れれば満足な人は(ちょっと間違った説明ですが)ファイルが何語で書かれているかだと思ってください。
(本当は違いますが)「英語で書かれたファイル」や「日本語で書かれたファイル」と似たようなイメージです。
「UTF-8で書かれたファイル」や「Shift_JISで書かれたファイル」などと出てきたら「『UTF-8』語で書かれたファイル」や「『Shift_JIS』語で書かれたファイル」と読み替えてください。
それで何となくのイメージは つかめるはずです。
BOM(Byte Order Mark:バイトオーダーマーク)は「Unicode語で書かれたテキストファイルの中身の最初にくっついている『これはUnicodeだからね!』を示す目印」です。
「Byte Order Mark(バイト・オーダ・マーク)」の略で「BOM(ボム)」ね。
※「Byte Order Mark」を何となく日本語にすると「バイトの順序の印」となります。[詳細]
注意点として、Unicodeのファイルなら必ずBOMがくっつくわけでは ありません。
BOMがくっついていないやつも普通にあります。
BOMをくっつけるか否かの判断はケース・バイ・ケースです。
本題とズレるので、ここで説明するのは止めておきますね。
「それじゃあ、なんで わざわざ そんなものをくっつけるの?」と疑問に感じる方もいるかもしれませんね。
……聞いちゃいます?
BOMをくっつける理由を聞いちゃいますか?
1つは
「このファイルはUnicodeだぜ!」と熱く主張するため
です。
英語や日本語があるように、Unicode以外にも「Shift_JIS(Shift-JIS、SJIS)」とか「EUC-JP」とか似たようなポジションの奴らが いっぱい います。
そいつらに負けないように「俺はShift_JISでもEUC-JPでもなくUnicodeだからね!」と主張しているマークなのです。
もう1つは
「エンディアン(バイトオーダ)は、これだから」という情報を示すため
です。
BOMの中でエンディアンが指定されています。
……さらっと書いた「エンディアン(バイトオーダ)」ってなんだよ?と思いますよね。
エンディアンは、サクっと説明すると「マルチバイトなデータの並び順」です。
バイトオーダはエンディアンの別の呼び名です。
例えば、そうですね。
「あ~、腹減ったな~。何か食べたいな~」と書くとしましょう。
このとき「主語→述語」の順で
腹が減った。ご飯が食べたい。
と書いても伝わりますし「述語→主語」の順で
減ったよ、腹が。食べたいよ、ご飯が。
と書いても伝わりますよね。
同じように、Unicodeで2バイトのデータを書くときは
1バイト目→2バイト目
の順番で書くやり方(最初から書くやり方:ビッグエンディアン)と
2バイト目→1バイト目
の順番で書くやり方(最後から書くやり方:リトルエンディアン)があるのです。
ここで、ファイルの中身を読み取る方の気持ちになって考えてみてください。
「最初から書くやり方」で書かれているのか「最後から書くやり方」で書かれているのか分からないと困りますよね。
どっちから読めば良いのか判断できません。
そこでBOMの中に「どっちから読んでね!」を示す情報を入れておくのです。
以上を踏まえて
「BOM(Byte Order Mark:バイトオーダーマーク)」を日本語で言ってみました!な表現
が「バイト順マーク」です。
上でも書きましたが「BOM」は「Byte Order Mark(バイト・オーダ・マーク)」の略です。
「order(オーダ)」の意味は「注文」とか「順序」とか「指令」とか「整列」とかです。
「order」の部分を「順序」の「順」と訳して「バイト・順・マーク」としたのでしょう。
一言でまとめるよ
まぁ「バイト順マーク」って単語が出てきたら「BOM
(Unicodeのファイルに付く目印)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「byte(バイト)」はIT用語の「バイト」です。
「順」は日本語ですね。
「mark(マーク)」の意味は「印」とかです。
何となく くっつけると
バイト順の印
となります。
■検索してみる?






