文字列としてのバイナリーデータ

文字としてのバイト

[10] 20世紀頃は文字バイトの区別が明確になされないことが多くありました。 文字, バイト, オクテット, バイト列, 文字列

[3] 歴史的にオクテット列/バイト列文字列は同義または類義と考えられていた場面もありますが、 本来両者は別のものです。

バイトと文字の曖昧な世界

[6] 近年のプログラミング言語やデータ交換形式などではバイト列文字列を区別するケースが増えていますが、 かつては同一視するのが一般的でした。 文字のようなもの

char, 非SGMLデータ実体

[7] 例えばC言語では普通 char は8ビットの符号無し整数を表しますが、 文字1つを表すためにも使われています。

[9] Perl には utf8フラグのある文字列と、ないバイト列があります。 ただし両者間は暗黙の型変換があり、 0x00-0xFF の範囲では両者の区別が曖昧です。

[35] 中華人民共和国ではバイト字节と訳されています。 バイト

[12] Unix 世界では通常ファイル名バイト列です。 ファイル名の文字コード

文字として表されるバイト

[10] 文字の世界でバイトを表す

[8] JavaScript には長らく文字列 String しかありませんでしたが、 ES6バイト列のための TypedArray が追加されました。 それまでは文字列としてバイト列を扱うことがありました。 TypedArray, JavaScriptにおけるバイナリーデータ

[2] Emacs には文字コード体系を表す coding system として、 ASCII + 8ビットデータに使える raw-textバイナリーデータに使える no-conversion があります。 バイト内部符号において他の文字と区別して表現されます。 Emacsにおける文字コード

[5] Ruby にはASCII互換オクテット列を表す文字列エンコーディング ASCII-8BIT があります。

[11] バイト列を表すために ISO-8859-1 が流用されることがしばしばあります。 Python ではしばしばこのために latin-1 が用いられます。

[17] MySQL / MariaDB には CHARSET=BINARY があります。 CHARTEXTBINARY だと BINARYBLOB と同じように扱われます。

[16] IANA charset には不明な8ビット符号文字列を表す unknown-8bit があります。

[18] RFC 4790照合順序を定めるものですが、ここでいう照合順序バイト列に対して定義された文字コード比較整列を包含する概念であり、 i;octet のようなバイト列としての比較がその一種として定義されています。

[26] URLパーセント符号化のように、文字列の中に escape として (文字escape したものではなく) バイトを埋め込む形のものがあります。

文字列として区別されるバイト列の文字符号化

[13] 文字コードの判定の処理は、便宜上、 入力がバイナリーデータであると判定することがあります。 null などでそれを表すこともありますが、 専用の文字符号化のようなものとして表すこともあります。

[15] compact_enc_det は、 BINARYENC, X-BINARYENC, binary という値でバイナリーデータを表しています。 >>14

関連

8ビット安全

メモ