<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="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">20世紀</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>の区別が明確になされないことが多くありました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字</anchor>, <anchor>バイト</anchor>, <anchor>オクテット</anchor>, <anchor>バイト列</anchor>, <anchor>文字列</anchor> </sw-see></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> 歴史的に<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><section><h1>バイトと文字の曖昧な世界</h1><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> 近年の<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>を区別するケースが増えていますが、
かつては同一視するのが一般的でした。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字のようなもの</anchor> </sw-see></p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor><code xmlns="http://www.w3.org/1999/xhtml">char</code>型</anchor>, <anchor>非SGMLデータ実体</anchor> </sw-see></p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><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> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C言語</anchor>では普通 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">char</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">型</anchor>は8ビットの<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つを表すためにも使われています。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">utf8フラグ</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>があり、 0x00-0xFF の範囲では両者の区別が曖昧です。</p></example><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:">中華人民共和国</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>と訳されています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>バイト</anchor> </sw-see></p><p><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:">Unix</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>です。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ファイル名の文字コード</anchor> </sw-see></p></section><section><h1>文字として表されるバイト</h1><figure class="short list"><figcaption><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の世界で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>を表す</figcaption><ul><li><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><code>utf8::upgrade</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">surrogateescape</anchor></li><li><code>x-user-defined</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント依存文字符号化</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">symbol encoding</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8符号化されたバイト列</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字として符号化された文字やバイト</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646におけるエスケープシーケンス</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御文字</anchor></li></ul></figure><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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</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="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">String</anchor></code> しかありませんでしたが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES6</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>のための <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TypedArray</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>を扱うことがありました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>TypedArray</anchor>, <anchor>JavaScriptにおけるバイナリーデータ</anchor> </sw-see></p><ul><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">atob</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">btoa</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</anchor>-<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+00FF</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>)</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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x-user-defined</anchor> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</anchor>-<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+007F</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+F780</anchor>-<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+F7FF</anchor> が使われています。</li></ul><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> 
<cite>Emacs</cite> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>体系を表す <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">coding system</anchor>
として、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> + 8ビットデータに使える <code>raw-text</code>
と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイナリーデータ</anchor>に使える <code>no-conversion</code>
があります。
<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:">Mule内部符号</title></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:"> <anchor>Emacsにおける文字コード</anchor> </sw-see></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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ruby</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII互換オクテット列</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>ASCII-8BIT</code>
があります。</p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を表すために <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor> が流用されることがしばしばあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Python</anchor> ではしばしばこのために <code>latin-1</code> が用いられます。</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MySQL</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MariaDB</anchor> には <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CHARSET</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BINARY</anchor></code> があります。
<code>CHAR</code> や <code>TEXT</code> が <code>BINARY</code>
だと
<code>BINARY</code> や <code>BLOB</code> と同じように扱われます。</p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor> には不明な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8ビット符号</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を表す
<code>unknown-8bit</code>
があります。</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4790</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>を包含する概念であり、
<code>i;octet</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="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</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:">escape</anchor> として
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> したものではなく) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>を埋め込む形のものがあります。</p></section><section><h1>文字列として区別されるバイト列の文字符号化</h1><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>が<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="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:">VRML 3.0</anchor> バイナリー符号化ファイルの仕様案では <code>utf8</code> のかわりに
<code>binary</code> なる値を指定できるとしていました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <code xmlns="http://www.w3.org/1999/xhtml">#VRML</code> </sw-see></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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Fast Infoset</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML宣言</anchor>の <code>encoding=&quot;&quot;</code>
に <code>finf</code> という値を使います。</p><hr></hr><p><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:">文字コードの判定</anchor>の処理は、便宜上、
入力が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイナリーデータ</anchor>であると判定することがあります。
<code>null</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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 
<cite><code>compact_enc_det</code></cite>
は、
<code>BINARYENC</code>, <code>X-BINARYENC</code>, <code>binary</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="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</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="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 
<cite xml:lang="en">compact_enc_det/compact_enc_det/compact_enc_det_unittest.cc at master · google/compact_enc_det · GitHub</cite>, <time>2025-11-06T10:02:47.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/google/compact_enc_det/blob/master/compact_enc_det/compact_enc_det_unittest.cc">https://github.com/google/compact_enc_det/blob/master/compact_enc_det/compact_enc_det_unittest.cc</anchor-external></li></ul></refs></section><section><h1>関連</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>8ビット安全</anchor> </sw-see></p></section><section><h1>メモ</h1></section></body></html>