<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <dfn><ruby><code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor></code><rt>ボム</rt></ruby></dfn> (<dfn><code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BYTE ORDER MARK</anchor></code></dfn>)
は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 系<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の先頭に付与する特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
<dfn><code>U+FEFF</code></dfn>
<dfn><code class="charname" xml:lang="en">ZERO WIDTH NO-BREAK SPACE</code></dfn>
(<dfn><code class="charname" xml:lang="en">ZWNBSP</code></dfn>)
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>禁止を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">零幅文字</anchor>です。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 文字情報
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://chars.suikawiki.org/char/FEFF">https://chars.suikawiki.org/char/FEFF</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 系<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS-2</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS-4</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> などに存在します。それぞれの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>における
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+FEFF</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZERO WIDTH NO-BREAK SPACE</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の先頭に置くことで、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エンディアン</anchor>やどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を使っているかを識別できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>によって表される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の一部ではないので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>への変換で除去されるべきものです。本来の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>としての
<code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZERO WIDTH NO-BREAK SPACE</anchor></code> を使いたいことはほとんどありませんが、
先頭に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+FEFF</anchor></code> を2つ並べると1つ目は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>、2つ目は
<code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZERO WIDTH NO-BREAK SPACE</anchor></code> とみなされます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の先頭でのみ使われます。途中では使うことができません。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は必須ではありません。</comment-p><section><h1>代替</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> の衰退と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> への統一により不要となり、
あまり使われなくなりました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <code class="charname" xml:lang="en">ZWNBSP</code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> との混同を避けるため、使われなくなりました。
元の用法ではかわりに <code class="charname" xml:lang="en">WORD JOINER</code> が使われています。</p></section><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">The Unicode Standard</anchor>, Version 13.0 - ch02.pdf</cite>, <time>2020-03-09T17:53:32.000Z</time>, <time>2020-12-20T09:45:33.849Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.unicode.org/versions/latest/ch02.pdf#G9354">https://www.unicode.org/versions/latest/ch02.pdf#G9354</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite>The Unicode Standard, Version 13.0 - ch23.pdf</cite>, <time>2020-03-09T17:53:52.000Z</time>, <time>2020-12-09T10:59:29.820Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.unicode.org/versions/latest/ch23.pdf#G15334">https://www.unicode.org/versions/latest/ch23.pdf#G15334</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <cite>The Unicode Standard, Version 13.0 - ch23.pdf</cite>, <time>2020-03-09T17:53:52.000Z</time>, <time>2020-12-14T11:10:22.507Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.unicode.org/versions/latest/ch23.pdf#G19635">https://www.unicode.org/versions/latest/ch23.pdf#G19635</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の先頭で用いて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>が 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
であることを示し、
しかも具体的にどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト順</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor> (または <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>)
であるか区別できるように示すものであります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
は、
各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>において、
<code>U+FEFF</code>
を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
では次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>とされています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>: 0xEF 0xBB 0xBF</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大エンディアン</anchor>: 0xFE 0xFF</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小エンディアン</anchor>: 0xFF 0xFE</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大エンディアン</anchor>: 0x00 0x00 0xFE 0xFF</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小エンディアン</anchor>: 0xFF 0xFE 0x00 0x00</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SCSU</anchor>: 0x0E 0xFE 0xFF</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOCU-1</anchor>: 0xFB 0xEE 0x28</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-7</anchor>: 0x2B 0x2F 0x76 0x38 または
0x2B 0x2F 0x76 0x39
または
0x2B 0x2F 0x76 0x2B 
または
0x2B 0x2F 0x76 0x2F</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-EBCDIC</anchor>: 0xDD 0x73 0x66 0x73</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> 
各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>は必ずしもこのすべてを認めてはいません。
例えば
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> 
は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> の3種類のみ対応しています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> 
古い実装は、
0x00 0x00 0xFE 0xFF
と
0xFF 0xFE 0x00 0x00
を
<code>U-7FFFFFFF</code> まであった昔の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS-4</anchor>
と解釈することがあります。
同様に
0xEF 0xBB 0xBF
を昔の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> と解釈することがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> 
一部の実装は、
0xFE 0xFF 0x00 0x00 を <code>X-ISO-10646-UCS-4-3412</code>、
0x00 0x00 0xFF 0xFE を <code>X-ISO-10646-UCS-4-2143</code>
と解釈するようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> 
理屈上は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GB 18030</anchor>
でも
<code class="charname" xml:lang="en">BOM</code>
を使えるはずですが、
実例があるかは不明です。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-7</anchor>
が何通りもあるのは、続きの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>と共に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>した先頭部分だからです。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> 
<code>U+FFFE</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非文字</anchor>とされており、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報交換</anchor>される
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>には含まれないことになっています。
そこで先頭に現れるとすれば
<code>U+FEFF</code> 
だと仮定して判定できます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非文字</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装依存</anchor>の方法で使うことができます。
外部との<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報交換</anchor>に用いない特定の実装で用いる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>なら、
<code xmlns="http://www.w3.org/1999/xhtml">U+FFFE</code> が含まれる可能性はあります。
その可能性がある場合には、 <code xmlns="http://www.w3.org/1999/xhtml" class="charname" xml:lang="en">BOM</code>
を使わない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装依存</anchor>の方法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>を決定しなければなりません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> 
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xBB</n>,
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xBF</n>,
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xEF</n>,
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFE</n>,
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFF</n>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 8859-1</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1252</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MacRoman</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Adobe Standard Encoding</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBCDIC</anchor>
といった既存の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>で使われることはあるものの、
この組み合わせでは出現する可能性が低いとされています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> しかも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の先頭に来る可能性はかなり低いと考えられます。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
が使われる場合、
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>を表現する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>は、
当然、
<code class="charname" xml:lang="en">BOM</code>
を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の長さの分、長くなります。
変換するソフトウェアは、
変換結果を格納する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バッファー</anchor>の長さの決定に注意が必要となります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
を使う場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の長さが <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
ではなくなります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>としての長さ判定をもって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の指定の有無を判定するようなプログラムは意図通りに動作しません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
を使った
(または使われている可能性がある)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>の連結は、
単純な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の連結とは異なることに注意が必要です。</p></section><section><h1>BOM と符号化ラベル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor>) では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化ラベル</anchor>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
の両方が存在する場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> が優先されることになっています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor> </sw-see></p></section><section><h1>BOM の処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> 
現在では普通<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>
で出力する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソフトウェア</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成</anchor>するべきではありません。
今となっては
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
は使う意味がなく、
かえって混乱のもとになります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を解釈する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソフトウェア</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>の規定に基づき、適宜 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
を無視しなければなりません。
その場合先頭の
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
は
<code class="charname" xml:lang="en">BOM</code>
解釈しなければなりません
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>。
もはや <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> に意味がないとはいえ、
既に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
がついたデータが大量に生成されていますし、
未だに
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
がついたデータを生成するソフトウェアが残っていますから、
すべてのソフトウェアは
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
のあるデータに対応しなければならないのです。</p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> 具体的には <anchor>UTF-8</anchor> などの<anchor>復号</anchor>を参照 </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に変換する時点で除去する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を操作する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソフトウェア</anchor>は
<code class="charname" xml:lang="en">BOM</code>
に対応する必要はありませんし、
むしろ何もしてはいけません。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列型</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>なので、
操作する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>は
<code class="charname" xml:lang="en">BOM</code>
を意識しなくて構いません。)</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> 
<cite>The Unicode Standard</cite>
に示された
<code class="charname" xml:lang="en">BOM</code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;75</anchor-internal>)
のうち、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOCU-1</anchor>
と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-7</anchor>
のものは、
それ以後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の解釈に影響が出てしまうので、
すべて含めて一体として<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に変換して、
その先頭の
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
を除去する必要があります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> 
それ以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の
<code class="charname" xml:lang="en">BOM</code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>として除去し、
それ以降の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>だけ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に変換することができます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p></section><section><h1>文字 <code class="charname" xml:lang="en">ZWNBSP</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>として現れる
<code>U+FEFF</code>
の意味は、
<code class="charname" xml:lang="en">WORD JOINER</code>
と同じです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal></src>
すなわち、
それと前後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>との間で原則<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>が禁止されることを示します。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <code xmlns="http://www.w3.org/1999/xhtml" class="charname" xml:lang="en">WORD JOINER</code> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 3.2</anchor>
までこの機能には
<code class="charname" xml:lang="en">ZWNBSP</code>
を使うことになっていましたが、
<code class="charname" xml:lang="en">BOM</code>
としての方が使われるようになったため、
<code class="charname" xml:lang="en">WORD JOINER</code>
が追加されたとされます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal></src>
故に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 3.2</anchor> 
までとの互換性のためを除き、
<code>U+FEFF</code>
を
<code class="charname" xml:lang="en">ZWNBSP</code>
として使用しないこととされています
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字の名前</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">byte order mark</anchor>
でなく
<code class="charname" xml:lang="en">ZERO WIDTH NO-BREAK SPACE</code>
であるのは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">歴史的理由</anchor>であるとされます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>文字の名前</anchor>の変更は認められていません)</weak>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> 
理屈の上では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>の先頭にあるのが
<code class="charname" xml:lang="en">BOM</code>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の任意の位置に現れ得るのが
<code class="charname" xml:lang="en">ZWNBSP</code>
と明確に区別し得ますし、
<code class="charname" xml:lang="en">BOM</code>
が認識されなかった場合でも目に見えない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">零幅文字</anchor>なので害はない、
というのが当初これに2つの意味を持たせた設計思想だったのでしょう。
実際にはことはそううまく進まず、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
の扱いには混乱がありました。
それで結局別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を用意することになったようです。
<cite>The Unicode Standard</cite>
は、
<code class="charname" xml:lang="en">BOM</code>
が入った<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>を連結すると途中に
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
が入ってしまうが、
<code class="charname" xml:lang="en">ZWNBSP</code>
と
<code class="charname" xml:lang="en">BOM</code>
の2つの意味があるので
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
を無条件に除去できないことを、
設計の失敗として挙げています
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> 
新しいテキストでは <code>U+2060</code> <code class="charname" xml:lang="en">WORD JOINER</code>
を使うことが<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強く推奨<rt xmlns="http://www.w3.org/1999/xhtml">strongly preferred</rt></rubyb>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>
(<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src>)
されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">後方互換性</anchor>のため、
<code>U+FEFF</code> にも対応し続ける<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> 
<code class="charname" xml:lang="en">BOM</code>
が使われる場合に先頭の
<code class="charname" xml:lang="en">ZWNBSP</code>
を表すためには、
先頭に
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
が2つ現れることになります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> 
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor>」, 「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16LE</anchor>」
のように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト順</anchor>が明示されている場合や、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を扱う <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データベース</anchor>などで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト順</anchor>が既知である場合には、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
は
<code class="charname" xml:lang="en">BOM</code>
ではなく
<code class="charname" xml:lang="en">ZWNBSP</code>
と解釈します。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> 
<code class="charname" xml:lang="en">DOCS</code>
によって
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor>
に切り替えられた直後の
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFEFF</n>
がどう解釈されるべきかは不明です。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ISO/IEC 10646におけるエスケープシーケンス</anchor> </sw-see></p></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PDF</anchor>
中の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor>
文字列の先頭には、
<code class="charname" xml:lang="en">BOM</code>
を書きます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ReliableTXT</anchor>
の先頭には <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> を書きます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZIP</anchor> では使いません。 <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ZIPの文字コード</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> 
関連:
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTMLにおける文字コード</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLにおける文字コード</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONにおける文字コード</anchor></p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <code class="charname" xml:lang="en">ZWSP</code>, <code class="charname" xml:lang="en">NBSP</code>
とは挙動が違います。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">爆発</anchor>はしません。</p></section><section><h1>歴史</h1><section><h1>ISO/IEC 10646 における BOM</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC10646</anchor> には「byte order mark」という言葉は出てきません 
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UnicodeStandard</anchor> には出てきます)。 10646 は <abbr>BOM<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Byte order mark</title></abbr> 
のことを、「<abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS</anchor></abbr> を識別する『signature』」と呼んでいます。
ISO/IEC 10646-1:2000 附属書 H (参考) The use of “signatures” to identify UCS
に説明があります。</p><blockquote><p>This annex describes a convention for the
identification of features of the UCS, by the use of
&quot;signatures&quot; within data streams of coded
characters. The convention makes use of the
character ZERO WIDTH NO-BREAK SPACE, and is
applied by a certain class of applications.</p></blockquote><p>なんだそーです。使いたけりゃ使えば? 的で結構さめてます。
引用部の後の方の記述によると、<table><tbody><tr><td>UCS-2 signature</td><td>FEFF</td></tr><tr><td>UCS-4 signature</td><td>0000 FEFF</td></tr><tr><td>UTF-8 signature</td><td>EF BB BF</td></tr><tr><td>UTF-16 signature</td><td>FEFF</td></tr></tbody></table></p><p>ってことですが、別に <abbr>UCS</abbr>-2/4, <abbr>UTF</abbr>-8/16 を区別できるのが
嬉しいのじゃなくて、その名の通りバイト順を区別できるのが嬉しいんです。</p><ul><li>UCS-2/UTF-16BE: FEFF</li><li>UCS-2/UTF-16LE: FFFE</li><li>UCS-4/UTF-32BE: 0000 FEFF</li><li>UCS-4/UTF-32LE: FFFE 0000</li></ul><p>このように、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エンディアン</anchor>が識別できるんです。素晴らしいでしょ? :-)</p><p>だから <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> ではこんなの要らんのですが、一貫性かなんかのために、
つけようというのが当世風。対応してない応用からすると頭にゴミです。
おまけに、 <abbr>UTF</abbr>-8 の最大の特徴であった <abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor></abbr> との互換性を
ぶっ飛ばしてしまいます。</p><p><code class="char">ZERO WIDTH NO-BREAK SPACE</code> 
(<code class="char"><abbr>ZWNBSP</abbr></code>) が <code class="char">U+FEFF</code> に置いてあって、
<code class="char">U+FFFE</code> が「not a character」になってるのは偶然じゃありません。
<code class="char"><abbr>BOM</abbr></code> に使うためにわざわざこう配置したんです。</p><p>で、あとから <code class="char"><abbr>BOM</abbr></code>
ありなし問題云々で <code class="char">U+FEFF</code> を <code class="char"><abbr>ZWNBSP</abbr></code> 
本来(?)の役目に使うことが出来ない状況になってしまった <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(ほんとか?)</weak>
もんですから、
<code class="char">ZERO WIDTH NON-JOINER</code> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(だっけ?)</weak> 
とかを別に追加することになったとか。 (そして追加されたとか。)
しょーもない話ですなあ。</p></section><section><h1>BOM は必須ですか?</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <strong>質問</strong>:</p><blockquote><p>BOMって本来必須なものだと思っていたのですけど、そうでもないんですね <ins>(<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.airemix.com/bbs/">http://www.airemix.com/bbs/</anchor-external> No.148-13)</ins></p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> はい。 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> にあるように、原則として必要ありません。</p><p>ただし、 <abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS</anchor></abbr>
を使用する場面などによって、その場面で使用する規格などが
<abbr>BOM</abbr> を使わなければならないと規定していること<strong>も</strong>あります。
その場合はもちろん必須になります。</p></section><section><h1>UTF-8 と UTF-8n</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <strong>質問</strong>: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の名前に <code>UTF-8</code> と <code>UTF-8n</code>
があるようなのですが、どう違うのですか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> まずはっきりさせておかないといけないこととして、 <code>UTF-8n</code>
という名前はあまり知られていません。ですから、 <code>UTF-8</code>
と <code>UTF-8n</code> 
にはっきり使い分けがあるのかというと、そうでもありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <code>UTF-8n</code> という名前を提案しているのは、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UnicodeConsortium</anchor>
のそれなりに偉い人 (誰かは忘れた。) のようです。
しかも、その人の文章 (どこにあったか忘れた。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dW</anchor> かなあ。)
では、使い分けが当然であるかのように書いてあります。</p><p>しかし、 Unicode や <abbr>ISO</abbr>/<abbr>IEC</abbr> 10646 
の規格票を見ても、そんなことは全然書いてありません。
つまり、両者を使い分ける提案はありますが、標準化団体や世間で受け入れられているものではありません。
また、受け入れられるけはいもありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> さて、回答ですが、使い分けを提案している人は、
<code>UTF-8n</code> を <abbr>BOM</abbr> なしの UTF-8 に、 
<code>UTF-8</code> を <abbr>BOM</abbr>
ありの UTF-8 に使おうと言っています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> しかし実際には <code>UTF-8</code> という名前は <abbr>BOM</abbr> 
なしに対して呼ばれることが多いです。 (最近は <abbr>BOM</abbr>
ありに対して言うことも多くなってきたようです。
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(とはいえ、統計は無いので感覚的に、です。)</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal> のような状況でどうして <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal>
のような定義を提案しているのかですが、おそらく <abbr>BOM</abbr>
ありを普及させたい意図があるのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> なお、 <abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor></abbr> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> 名 (<abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor></abbr> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メイル</anchor>)
や <abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor></abbr> で使われる。) では <code class="charset">UTF-8</code>
だけを定義していて、その内容は <abbr>BOM</abbr> 
はあっても無くてもいい、というものです。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2004-02-17 05:00:41 +00:00</weak> <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">naruse</anchor></em>: 結構UTF-8Nって使う人は多いように思いますよ。UNIX系で最初の一行で処理を決めるとき(#!なんちゃら)、BOMがあるとエラーになってしまうため、UTF-8Nでないといけないのです。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</anchor-internal> Windows のメモ帳の影響がどれくらいのものかはわかりませんが、
基本的には今も昔も <abbr>BOM</abbr> なしの UTF-8 がずっと多いと思います。</p><p>ここで問題にされているのは、そのような話ではなくて、
BOM なし/ありの UTF-8 をそれぞれどのような名前で呼ぶかですよね。</p><ul><li>BOM があってもなくても、どちらも (またはどちらかわからない状態を)
<code>UTF-8</code> と呼ぶ人がいる。</li><li>BOM があったら <code>UTF-8</code> と呼び、 BOM がなければ <code>UTF-8N</code>
と呼ぶ人がいる。</li><li>BOM の問題を知らない人がいる。</li><li>この問題とは関係ないけど、 UTF-8 のことを Unicode と呼ぶ人もいる。</li></ul><p>「UTF-8N」といえば BOM なしであることに疑問の余地はありませんが、
「UTF-8」といった時に一般には
BOM のあり・なしを断定できないのです。</p><p>経験的には、「UTF-8」に対応しているソフトウェアの多くは BOM ありまたは
BOM なしのいずれかしか扱えなくて、 BOM なしだけを扱える方がずっと多く、
たまに、 BOM ありで最初に実装したソフトウェアに後から「UTF-8N」
と称して BOM なしを追加することがあるくらいの様に思われます。なんとなく。</p></section><section><h1>XML における BOM</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML MIME実体</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> のない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べき</strong></anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> では、 <code class="charset" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor></code> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は必須とされています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src>。
また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外部実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換文</anchor>が <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+FEFF</anchor></code> で始まる場合で、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト宣言</anchor>が含まれない場合には、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
は必須とされています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML処理器</anchor>は <code class="charset" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></code> と <code class="charset" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor></code>
の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> への対応が義務付けられています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> 関連の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>の規定は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2781</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> 
から変換する場合には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を除去し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> に変換する場合には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を追加することを要求しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src>。
ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> との変換の場合を除きます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src>。
また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> 以外へ変換するときも、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を除去することを要求しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2376</anchor> 時代はなぜか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">SHOULD</strong></anchor> でしたが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3023</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> に修正されています。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2781</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16LE</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> が禁止されている)
では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を付けてはならず、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> と変換するときは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
をつけたりはずしたりしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">ならない</strong></anchor>ともされています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src>。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <cite xml:lang="EN">Extensible Markup Language (XML) 1.0 (Fifth Edition)</cite> (<time>2013-05-28 20:49:56 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xml/#charencoding">http://www.w3.org/TR/xml/#charencoding</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite xml:lang="en">RFC 7303 - XML Media Types</cite> (<time>2014-07-07 20:56:43 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc7303#section-3.3">http://tools.ietf.org/html/rfc7303#section-3.3</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 旧旧版 <cite xml:lang="en">RFC 2376 - XML Media Types</cite> (<time>1998-07</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2376">http://tools.ietf.org/html/rfc2376</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 旧版 <cite xml:lang="en">RFC 3023 - XML Media Types</cite> (<time>2014-07-11 12:46:44 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3023#section-4">http://tools.ietf.org/html/rfc3023#section-4</anchor-external></li></ul></li></ul></refs><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> と他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>指定との関係については、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLにおける文字コード</anchor>を参照してください。</comment-p></section></section><section><h1>メモ</h1><figure class="amazon"><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor></p></figure><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <abbr>BOM</abbr> なんて消えてなくなれ!</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> ついでに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> もなくなれ!</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> このさい <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> もなくなってしまえ!!</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end>
<cite>QA/Utf8BomInteropReport - ESW Wiki</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://esw.w3.org/topic/QA/Utf8BomInteropReport">http://esw.w3.org/topic/QA/Utf8BomInteropReport</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2006-12-13 12:36:42 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end>
<cite>I18N Tests: UTF-8 signature 1</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/International/tests/sec-utf8-signature-1.html">http://www.w3.org/International/tests/sec-utf8-signature-1.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end>
<cite xml:lang="ja">BOM は Bomb? | | プログラマ2.0日報 | あすなろBLOG</cite> (<time>2008-11-13 10:21:17 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://blog.pasonatech.co.jp/sugiura/8981.html">http://blog.pasonatech.co.jp/sugiura/8981.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;18</anchor-internal></p><blockquote><p>まあ「BOM が必要」なコンテキストというのは単に</p><p>今が移行期だから</p><p>ということであるに過ぎません。とっととこういうものは要らなくなるようになってほしいですね。</p></blockquote><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> よとっととなくなれということですね、わかります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">MAMA: Basic document structure - Opera Developer Community</cite> (<time>2008-11-25 20:12:03 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.opera.com/articles/view/mama-basic-document-structure/#boms">http://dev.opera.com/articles/view/mama-basic-document-structure/#boms</anchor-external></p><blockquote><p>The 3 BOMs were found in a total of 17,649 URLs (0.50% of all URLs analyzed). The BOM found most often is utf-8.</p><table><tbody><tr><td>BOM</td><td>Frequency</td></tr><tr><td>utf-8</td><td>17,006</td></tr><tr><td>utf-16 (little-endian)</td><td>647</td></tr><tr><td>utf-16 (big-endian)</td><td>26</td></tr></tbody></table></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite xml:lang="ja-JP">PHP スクリプトは BOM 付き UTF-8 で書いてはいけない - れぶろぐ (2009-01-29)</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revulo</anchor> 著, <time>2009-02-11 18:42:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.revulo.com/blog/20090129.html#p01">http://www.revulo.com/blog/20090129.html#p01</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">(X)HTML5 Tracking</cite>
(<time>2009-09-15 20:15:36 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=3852&amp;to=3853">http://html5.org/tools/web-apps-tracker?from=3852&amp;to=3853</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <cite>Bug 12897 – In some parsers, UTF-8 BOM trumps the HTTP charset attribute (Encoding sniffing algorithm)</cite>
(<time>2011-12-29 20:02:59 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=12897">https://www.w3.org/Bugs/Public/show_bug.cgi?id=12897</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7360     Make a BOM override HTTP headers.</cite>
( (<time>2012-09-16 12:55:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=7359&amp;to=7360">http://html5.org/tools/web-apps-tracker?from=7359&amp;to=7360</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">Charinfo — &quot;﻿&quot;</cite>
( (<time>2013-03-16 12:16:43 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://chars.suikawiki.org/char/FEFF">http://chars.suikawiki.org/char/FEFF</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7782     Strip a leading BOM from scripts in workers, if any. Also, use more of the encoding spec.</cite>
( (<time>2013-03-30 03:45:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=7781&amp;to=7782">http://html5.org/tools/web-apps-tracker?from=7781&amp;to=7782</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> JSON: remove gap between Ecma-404 and IETF draft</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Martin J. Dürst</anchor> 著, <time>2013-11-14 20:14:29 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Nov/0102.html">http://lists.w3.org/Archives/Public/www-tag/2013Nov/0102.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">Re: BOMs</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bjoern Hoehrmann</anchor> 著, <time>2013-11-18 21:35:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Nov/0119.html">http://lists.w3.org/Archives/Public/www-tag/2013Nov/0119.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cscript%3E%0A%20%20var%20p%20%3D%20document.createElement%20(%27p%27)%3B%0A%20%20p.innerHTML%20%3D%20%27%5CuFEFFabcd%27%3B%0A%20%20w%20(p.textContent.length)%3B%0A%3C%2Fscript%3E">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cscript%3E%0A%20%20var%20p%20%3D%20document.createElement%20(%27p%27)%3B%0A%20%20p.innerHTML%20%3D%20%27%5CuFEFFabcd%27%3B%0A%20%20w%20(p.textContent.length)%3B%0A%3C%2Fscript%3E</anchor-external>
は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> でも5になります。つまり innerHTML の先頭に
U+FEFF があっても無視されません。 <time>2014-06-10T01:40:33.100Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Ciframe%3E%3C%2Fiframe%3E%0A%3Cscript%3E%0A%20%20var%20doc%20%3D%20document.getElementsByTagName%20(%27iframe%27)%5B0%5D.contentDocument%3B%0A%20%20doc.open%20()%3B%0A%20%20doc.write%20(%27%5CuFEFFabcd%27)%3B%0A%20%20doc.close%20()%3B%0A%20%20w%20(doc.body.textContent.length)%3B%0A%3C%2Fscript%3E">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Ciframe%3E%3C%2Fiframe%3E%0A%3Cscript%3E%0A%20%20var%20doc%20%3D%20document.getElementsByTagName%20(%27iframe%27)%5B0%5D.contentDocument%3B%0A%20%20doc.open%20()%3B%0A%20%20doc.write%20(%27%5CuFEFFabcd%27)%3B%0A%20%20doc.close%20()%3B%0A%20%20w%20(doc.body.textContent.length)%3B%0A%3C%2Fscript%3E</anchor-external>
は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> でも5になります。つまり <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document.open</anchor></code> + <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document.write</anchor></code>
で新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を作成しても先頭の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+FEFF</anchor> は無視されません。 <time>2014-06-10T01:42:35.500Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <cite xml:lang="en">RFC 5854 - The Metalink Download Description Format</cite>
( (<time>2014-09-14 16:54:14 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5854#section-4.2.13">http://tools.ietf.org/html/rfc5854#section-4.2.13</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <cite xml:lang="en">Let the Encoding standard deal with the BOM · whatwg/html@83ebb72</cite>
(<time>2016-02-10 22:46:09 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/83ebb728198801e2f1a32b80ec7d7a2e7dccc593">https://github.com/whatwg/html/commit/83ebb728198801e2f1a32b80ec7d7a2e7dccc593</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <cite xml:lang="en">Clarify that using the BOM before Content-Type is a violation of sorts · whatwg/encoding@0a29220</cite>
(<time>2016-02-10 22:47:11 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/encoding/commit/0a29220bd70173964f2e29bf8288c57f7255180a">https://github.com/whatwg/encoding/commit/0a29220bd70173964f2e29bf8288c57f7255180a</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> (<time>2013-11-18 10:05:28 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf#page=70">http://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf#page=70</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;51</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Exif</anchor> の <code>DeviceSettingDescription</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ</anchor>の値は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> 付きの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS-2</anchor> と定義されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">Describe the relationship between encodings and Unicode encoding schemes</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">hsivonen</anchor>著, <time>2018-08-23 22:57:39 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/encoding/commit/6f9a41f3d9dbc7ba6d88f65f7ef1c139fb08d4be">https://github.com/whatwg/encoding/commit/6f9a41f3d9dbc7ba6d88f65f7ef1c139fb08d4be</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite xml:lang="en">Add an informative note about the relationship of encodings and Unicode encoding schemes by hsivonen · Pull Request #151 · whatwg/encoding</cite>
(<time>2018-09-04 16:41:36 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/encoding/pull/151">https://github.com/whatwg/encoding/pull/151</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="en">Give clearer advice on hooks for standards</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2018-04-25 21:22:45 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/encoding/commit/b579018b406d7752f8b7a3aa9c2bc800519c6f1a">https://github.com/whatwg/encoding/commit/b579018b406d7752f8b7a3aa9c2bc800519c6f1a</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> <cite>21038-bom-guidance.pdf</cite>, <time>2021-01-12T15:47:34.000Z</time>, <time>2023-06-16T10:51:06.151Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.unicode.org/L2/L2021/21038-bom-guidance.pdf">https://www.unicode.org/L2/L2021/21038-bom-guidance.pdf</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> 
<cite xml:lang="ja">XユーザーのS (ツイートはスレッド全体をご確認ください)さん: 「先日も、弊研究科の担当業者さんが作成してくださったaliasesファイルの先頭にUTF-8のBOMが混入して1番目のアドレスが転送できていなかった×2を発見したのですが、他のドメインは大丈夫ですか?」 / X</cite>, <time>午後5:51 · 2024年3月24日<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2024-03-24T08:51:54.000Z</attrvalue></time>, <time>2024-03-26T03:14:27.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/esumii/status/1771822235935785436">https://twitter.com/esumii/status/1771822235935785436</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> 
<cite xml:lang="ja">Xユーザーの狭山あかねさん: 「今まで出会った最悪「BOMつき SJIS」 (中身は Shift JIS のはずなんだけどあたまに UTF-8 の BOM だけついてる)」 / X</cite>, <time>午後5:48 · 2025年1月6日<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2025-01-06T08:48:32.000Z</attrvalue></time>, <time>2025-01-06T09:25:23.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://x.com/azwjp/status/1876189093908119640">https://x.com/azwjp/status/1876189093908119640</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</anchor-end> 
<cite xml:lang="en">183354 - Make Universal Charset Autodetector recognise UTF by BOM</cite>, <time>2025-12-01T08:23:39.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=183354">https://bugzilla.mozilla.org/show_bug.cgi?id=183354</anchor-external></p></section></body></html>