バイトオーダーマークとはUnicodeの文字符号化方式を判別するための仕組みである。
Unicodeではファイルとの先頭にU+FEFFを挿入することが認められている。これがあると、ファイルの先頭4バイトを読むだけで、そのファイルがどの文字符号化方式(文字符号化形式にビッグエンディアンとリトルエンディアンの区別を含めたもの)を使っているのか判定できるのだ。
UnicodeではU+EFBBは私用領域(E000-F8FF)にあるので、UTF-8のバイトオーダーマークが他のUTFと混同される心配はない。その他の混同を防ぐための割当制限についてはUTF-16, UTF-32の記事でバイトオーダーマークの項を参照。
UnicodeでU+FEFFの符号位置にあるのはZERO WIDTH NO-BREAK SPACEであると定義されている。
本来、ZERO WIDTH NO-BREAK SPACEの記事に書くべきかもしれないが、ネタ記事になっている(ちなみに、あの記事のスペースは特にひねりのない全角スペースであり、非表示文字が埋め込まれたりはしていない模様)ので、こちらに記載する。
ZERO WIDTH NO-BREAK SPACEという名前で定義されているものの、原則としてファイルの先頭でバイトオーダーマークとしてのみ使用することとし、ゼロ幅文字としての使用は非推奨とされている(2002年3月のUnicode 3.2より)。
改行禁止ゼロ幅文字としては代わりにU+2060: WORD JOINERを使用することとされている。ただし、ファイルの先頭以外でZERO WIDTH NO-BREAK SPACEに遭遇したら、本来のゼロ幅文字として解釈することとなっている。
掲示板
急上昇ワード改
最終更新:2023/03/22(水) 18:00
最終更新:2023/03/22(水) 18:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。