<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="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <dfn>符号化</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>に変換する操作です。
<dfn>復号</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><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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en-US">Encoding Standard</cite> (<time>2016-07-29 16:12:31 +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://encoding.spec.whatwg.org/#encodings">https://encoding.spec.whatwg.org/#encodings</anchor-external></li><li><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> <cite xml:lang="en-US">Encoding Standard</cite> (<time>2016-07-29 16:12:31 +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://encoding.spec.whatwg.org/#specification-hooks">https://encoding.spec.whatwg.org/#specification-hooks</anchor-external></li><li><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-US">Encoding Standard</cite> (<time>2016-07-29 16:12:31 +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://encoding.spec.whatwg.org/#textdecoder">https://encoding.spec.whatwg.org/#textdecoder</anchor-external></li></ul></refs></section><section><h1>符号化</h1><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">符号化 (動詞)</title></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="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">encode</rt></rubyb></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><var>ストリーム</var>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor><var>符号化</var>について、
次のようにします <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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。<figure class="steps"><ol><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> <var>出力</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイトストリーム</anchor>に設定します。</li><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> <var>符号化</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器クラス</f>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走らせ<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">走らせる</title></anchor>ます。
<var>入力</var>を<var>ストリーム</var>、<var>出力</var>を<var>出力</var>とし、
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤りモード</anchor></var>は <code>html</code> とします。</li><li><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> <var>出力</var>を返します。</li></ol></figure></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="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:">replacement</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> を<var xmlns="http://www.w3.org/1999/xhtml">符号化</var>とすることはできません
<src><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></src>。</comment-p><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:">符号化</anchor>操作が使われる場面は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webにおける文字コード</anchor>を参照。</p><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> この操作は、 <cite>Encoding Standard</cite> の規定する任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">符号化 (動詞)</title></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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p></section><section><h1>復号</h1><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">decode</rt></rubyb><title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイトストリーム</anchor><var>ストリーム</var>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字符号化</title></anchor><var>符号化</var>について、
次のようにします <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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><figure class="steps"><ol><li><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> <var>バッファー</var>を、空の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>に設定します。</li><li><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> 繰り返し、<var>ストリーム</var>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読み<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">読む (ストリーム)</title></anchor>、
<var>バッファー</var>の末尾に追加します。<var>バッファー</var>が3<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>となるか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">end-of-stream</anchor> が得られた時点でやめます。</li><li><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> <var>バッファー</var>の最初の3バイトが <code>0xEF 0xBB 0xBF</code> なら、<ol><li><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> <var>符号化</var>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> に設定します。</li></ol></li><li><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> それ以外で、<var>バッファー</var>の最初の2バイトが <code>0xFE 0xFF</code> なら、<ol><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> <var>符号化</var>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> に設定します。</li><li><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> <var>バッファー</var>が3バイトなら、<ol><li><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> <var>バッファー</var>の最後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>を、<var>ストリーム</var>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prepend<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">prepend (ストリーム)</title></anchor>します。</li></ol></li></ol></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> それ以外で、<var>バッファー</var>の最初の2バイトが <code>0xFF 0xFE</code> なら、<ol><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> <var>符号化</var>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16LE</anchor> に設定します。</li><li><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> <var>バッファー</var>が3バイトなら、<ol><li><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> <var>バッファー</var>の最後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>を、<var>ストリーム</var>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prepend<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">prepend (ストリーム)</title></anchor>します。</li></ol></li></ol></li><li><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> それ以外なら、<ol><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> <var>バッファー</var>を、<var>ストリーム</var>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prepend<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">prepend (ストリーム)</title></anchor>します。</li></ol></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> <var>出力</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor>に設定します。</li><li><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> <var>符号化</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器クラス</f>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走らせ<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">走らせる (符号化)</title></anchor>ます。
<var>入力</var>は<var>ストリーム</var>、<var>出力</var>は<var>出力</var>とします。</li><li><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> <var>出力</var>を返します。</li></ol></figure><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:">仕様書</anchor>にはありませんが、<var>符号化</var>も返す必要があります。</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> <code class="DOMi" xml:lang="en">TextDecoder</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>の
<code class="DOMa" xml:lang="en">decode<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">TextDecoder</title></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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src>
は、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor>の処理の部分について、引数として<figure class="list members"><dl><dt><var>復号器オブジェクト</var></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器オブジェクト</anchor></dd><dt><var>ストリーム</var></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor></dd><dt><var>誤りモード</var></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤りモード</anchor> (<code>replacement<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">replacement (符号化)</title></code> または <code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code>)</dd><dt><var>do not flush flag</var></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フラグ</anchor></dd><dt><var>BOM無視フラグ</var></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フラグ</anchor></dd></dl></figure>... を受け取り、次のようにします。<figure class="steps"><ol><li><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> <var>出力</var>を、新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor>に設定します。</li><li><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> 繰り返し、<ol><li><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> <var>字句</var>を、<var>ストリーム</var>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読ん<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">読む</title></anchor>だ結果に設定します。</li><li><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> <var>字句</var>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">end-of-stream</anchor> で、 <var>do not flush flag</var> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>なら、<ol><li><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> 繰り返しをここで脱出します。</li></ol></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> それ以外なら、<ol><li><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> <var>結果</var>を、<var>復号器オブジェクト</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">処理 (符号化)</title></anchor>の結果に設定します。
<var>入力</var>は<var>ストリーム</var>、<var>出力</var>を<var>出力</var>、
<var>誤りモード</var>を<var>誤りモード</var>とします。</li><li><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> <var>結果</var>により、<figure class="switch"><dl><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了済み<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">終了済み (符号化)</title></anchor></dt><dd>繰り返しをここで脱出します。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">誤り (符号化)</title></anchor></dt><dd><code class="DOMe" xml:lang="en">TypeError</code> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>、ここで停止します。</dd></dl></figure></li></ol></li></ol></li><li><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリームの直列化<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">serialize stream</rt></rubyb></dfn>、すなわち、<ol><li><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> <var>ストリーム</var>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">end-of-stream</anchor> が得られるまで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読み<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">読む</title></anchor>続けます。
<var>結果</var>を、得られた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を順に連結したものに設定します。</li><li><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> <var>復号器オブジェクト</var>が <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-16BE</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16LE</anchor> のいずれかで、
<var>BOM無視フラグ</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>なら、<ol><li><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> <var>結果</var>の先頭が <code class="char">U+FEFF</code> なら、これを除去します。</li></ol></li><li><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> <var>結果</var>を返します。</li></ol></li></ol></figure></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>の境界以外で分割されているかもしれない複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を連続する1つの<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>が指示することを想定し、他での処理よりも複雑となっています。</p><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:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor>操作や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor>および関連各操作も、
入出力が1つの<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><hr></hr><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor>操作が使われる場面は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webにおける文字コード</anchor>参照。</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:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor>操作は、 <cite>Encoding Standard</cite> の任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>からの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</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="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:">UTF-8復号</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></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="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:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></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> が含まれていれば、そちらが優先されます (<dfn>BOM sniffing</dfn>)。</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="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> 他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset sniffing</anchor> との関係については、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webにおける文字コード</anchor>を参照。</comment-p><note xmlns="urn:x-suika-fam-cx:markup:ietf:html:3:draft:00:"><p xmlns="http://www.w3.org/1999/xhtml"><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:">HTTP</anchor> で転送されたデータに適用されます。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Webにおける文字コード</anchor> </sw-see></p><p xmlns="http://www.w3.org/1999/xhtml"><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:">HTTP</anchor> 仕様上は <code class="MIME" xml:lang="en">charset</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:">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>です <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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p xmlns="http://www.w3.org/1999/xhtml"><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> なお、
<code class="MIME" xml:lang="en">charset</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>に変換してから本操作を呼び出す必要があります。</p></note></section><section><h1>符号化器と復号器</h1><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> <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:">復号器</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</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:">走らせる<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">走らせる (符号化)</title></anchor>処理と<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取扱器<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">取扱器 (符号化)</title></f>が定義されています。
また<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器クラス</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMを持つ</f>は、当該<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:">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>です。</p><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 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:">処理<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">処理 (符号化)</title></anchor>演算が定義されています。</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> 更に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web IDLインターフェイス</anchor>として <code class="DOMi" xml:lang="en">TextEncoder</code>
と <code class="DOMi" xml:lang="en">TextDecoder</code> があり、それぞれ (通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web IDL</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="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <code class="DOMi" xml:lang="en">TextEncoder</code> や <code class="DOMi" xml:lang="en">TextDecoder</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>も含まれます。
同時には1つの<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="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字符号化</title></anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器クラス</f>または<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器クラス</f><var>器</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor><var>入力</var>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor><var>出力</var>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤りモード</anchor><var>モード</var>について<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走らせる<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">run</rt></rubyb></dfn>には、
次のようにします <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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>。<figure class="steps"><ol><li><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> <var>オブジェクト</var>を、<var>器</var>の新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>オブジェクトに設定します。</li><li><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> 繰り返し、<ol><li><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> <var>結果</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">処理 (符号化)</title></anchor>の結果に設定します。<figure class="list members middle"><dl><dt><var>オブジェクト</var></dt><dd><var>オブジェクト</var></dd><dt><var>字句</var></dt><dd><var>入力</var>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読んだ<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">読む (ストリーム)</title></anchor>結果</dd><dt><var>入力</var></dt><dd><var>入力</var></dd><dt><var>出力</var></dt><dd><var>出力</var></dd><dt><var>モード</var></dt><dd><var>モード</var></dd></dl></figure></li><li><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> <var>結果</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継続<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">継続 (符号化)</title></anchor>以外なら、<ol><li><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> <var>結果</var>を返し、ここで停止します。</li></ol></li></ol></li></ol></figure></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="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走らせる<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">走らせる (符号化)</title></anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">符号化 (動詞)</title></anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></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なしUTF-8復号</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号または失敗</anchor>から呼び出されます。</comment-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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器オブジェクト</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器オブジェクト</anchor><var>オブジェクト</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">字句 (文字コード)</title></anchor><var>字句</var>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor><var>入力</var>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム</anchor><var>出力</var>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤りモード</anchor><var>モード</var>について<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">process</rt></rubyb></dfn>するには、
次のようにします <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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>。<figure class="steps"><ol><li><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> <var>結果</var>を、<var>入力</var>と<var>字句</var>について<var>オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クラス</f>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取扱器<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">取扱器 (符号化)</title></f>を実行した結果に設定します。</li><li><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> <var>結果</var>により、<figure class="switch"><dl><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継続<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">継続 (符号化)</title></anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了済み<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">終了済み (符号化)</title></anchor></dt><dd><var>結果</var>を返し、ここで停止します。</dd><dt>1つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句</anchor></dt><dd><var>結果</var>を<var>出力</var>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">push<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">push (ストリーム)</title></anchor>します。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">誤り (符号化)</title></anchor></dt><dd><var>モード</var>により、<figure class="switch"><dl><dt><code>replacement<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">replacement (符号化)</title></code></dt><dd><code>U+FFFD</code> を<var>出力</var>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">push<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">push (ストリーム)</title></anchor>します。</dd><dt><code>html<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">html (符号化)</title></code></dt><dd>
<code>&amp;#</code>、<var>結果</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</f>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">十進数</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII数字</anchor>で最短で表現したもの、
<code>;</code> を連結したものを<em><var>入力</var></em>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prepend<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">prepend (ストリーム)</title></anchor>します。</dd><dt><code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">誤り (符号化)</title></anchor>を返し、ここで停止します。</dd></dl></figure></dd></dl></figure></li><li><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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継続<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">継続 (符号化)</title></anchor>を返します。</li></ol></figure></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="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:">処理<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">処理 (符号化)</title></anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走らせる<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">走らせる (符号化)</title></anchor>の他に、
<code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">TextEncoder</code> の <code xmlns="http://www.w3.org/1999/xhtml" class="DOMm" xml:lang="en">encode<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">TextEncoder</title></code>
<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:">走らせる<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">走らせる (符号化)</title></anchor>を呼び出します。) と実質的に等価です。</comment-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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器</anchor>の<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>取扱器<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">取扱器 (符号化)</title></anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">handler</rt></rubyb></f></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>を入力とします。
次のいずれかを返します。 <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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src><figure class="list middle"><ul><li><dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>終了済み<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">終了済み (符号化)</title></anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">finished</rt></rubyb></dfn></li><li>1つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">字句 (文字コード)</title></anchor></li><li><dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>誤り<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">誤り (符号化)</title></anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">error</rt></rubyb></dfn>と省略可能な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor></li><li><dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>継続<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">継続 (符号化)</title></anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">continue</rt></rubyb></dfn></li></ul></figure></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> 具体的な<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><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の項を参照。</comment-p></section><section><h1>文脈</h1><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>は、<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>符号化器</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">encoder</rt></rubyb>クラス</f></dfn>と<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>復号器</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">decoder</rt></rubyb>クラス</f></dfn>を持ちます
<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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ただし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換</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>は<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>符号化器</anchor>クラス</f>を持ちません <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>。</comment-p></section><section><h1>誤りモード</h1><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤りモード<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">error mode</rt></rubyb></dfn>は、次のいずれかです <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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>。<figure class="list"><dl><dt><dfn><code>replacement<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">replacement (符号化)</title></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>)</dt><dd>
不正な入力を <code class="char">U+FFFD</code> に置換することを指定するものです。</dd><dt><dfn><code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></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>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">既定値</anchor>)</dt><dd>
不正な入力の時<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エラー</anchor>を報告して停止するべきことを指定するものです。</dd><dt><dfn><code>html<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">html (符号化)</title></code></dfn> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器</anchor>)</dt><dd>
出力の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>で表現できない時 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">十進文字参照</anchor>に置換することを指定するものです。</dd></dl></figure></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> <code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML構文解析器</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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号または失敗</anchor>、 <code class="DOMi" xml:lang="en">TextDecoder</code> <code class="DOMa" xml:lang="en">fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code>
で使われます。</p><p><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> <code>replacement</code> はその他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>が必要な場面で使われます。
例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML構文解析器</anchor>が該当します。</p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器</anchor>では実際には <code>html<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">html (符号化)</title></code> しか使われません。
かつては <code class="DOMi" xml:lang="en">TextEncoder</code> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> 以外かつ <code class="DOMa" xml:lang="en">fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code>
が指定される可能性があったようですが、現在では <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:">Unicodeスカラー値</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">誤り (符号化)</title></anchor>なく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">符号化 (動詞)</title></anchor>できます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web IDL</anchor> <code xmlns="http://www.w3.org/1999/xhtml" class="IDL" xml:lang="en">USVString</code> への変換の時点で置換されます。</comment-p></section><section><h1>歴史</h1><p><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> <cite xml:lang="en">Define 'continue' and 'break' statements</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mikewest</anchor>著, <time>2016-11-22 03:27:37 +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/infra/commit/8fbf990dcdb5f7ee80a85b569cba61a056fe1cc5">https://github.com/whatwg/infra/commit/8fbf990dcdb5f7ee80a85b569cba61a056fe1cc5</anchor-external></p><p><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> <cite xml:lang="en">Parse application/x-www-form-urlencoded using UTF-8 only</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-01-17 19:11:02 +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/url/commit/3fe969679f78c92c353047661b0c4b6797f099f6">https://github.com/whatwg/url/commit/3fe969679f78c92c353047661b0c4b6797f099f6</anchor-external></p><p><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> <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="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> <cite xml:lang="en">Use UTF-8 decode without BOM for multipart/form-data</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>, <time>2019-11-04 23:23:54 +09:00</time>, <time>2021-03-06T02:54:19.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://github.com/whatwg/fetch/commit/7db8ac52245d6f0abaaeec6ae1cd96553c30b737">https://github.com/whatwg/fetch/commit/7db8ac52245d6f0abaaeec6ae1cd96553c30b737</anchor-external></p></section></body></html>