同型符号化

同型符号化

仕様書

演算

[3] 文字列データ同型符号化 (isomorphic encode) は、 次のようにします >>2

  1. [4] 出力を、新しい空バイト列に設定します。
  2. [5] データの各符号位置符号位置について、順に、
    1. [6] 出力の末尾に、値が符号位置バイトを追加します。
  3. [7] 出力を返します。
[8] この演算は、データU+0100 以上符号位置を含まないときにしか使えません。

[28] ASCII符号化 (ASCII encode) は、 ASCII文字列に対する同型符号化です >>2

[29] この演算は、データU+0080 以上符号位置を含まないときにしか使えません。

[11] バイト列データ同型復号 (isomorphic decode) は、 次のようにします >>10

  1. [12] 出力を、新しい空文字列に設定します。
  2. [13] データの各バイトバイトについて、順に、
    1. [14] 出力の末尾に、値がバイト符号位置を追加します。
  3. [15] 出力を返します。

[30] ASCII復号 (ASCII decode) は、 ASCIIバイトに対する同型復号です >>10

[31] この演算は、データ0x80 以上バイトを含まないときにしか使えません。

文脈

[18] 同型符号化は、次の場面で使われています。

[19] 同型符号化応用

[20] この他に、仕様書ではUTF-8符号化UTF-8復号となっていても、 実質的に同型符号化同型復号を表していることがあります。

[22] 同型復号の用法は、復号も参照。

関連

[9] Perlバイト列文字列として扱うことができます。これは同型復号に相当する暗黙の型変換を伴っています。

歴史

[1] Define isomorphic encode and decode (annevk著, ) <https://github.com/whatwg/infra/commit/8d7447e5462f2cd104b7bbe7a719227be80921cf>

[16] byte sequence <> string by annevk · Pull Request #146 · whatwg/infra () <https://github.com/whatwg/infra/pull/146>

[17] 実装によっては ISO 8859-1Latin1 という名称の文字コードとしてこの符号化復号が実装されていることがありますが、 その意味には混乱があるため (例えば Web では Windows-1252 の意)、 演算名に使うことは避けられているようです。

[21] Define the HTTP Refresh header (annevk著, ) <https://github.com/whatwg/html/commit/7e9f6b6ffe2119f43f909f71773a25a7e8a61ca7>

[23] 28339 – <meta refresh> Specify Refresh HTTP header () <https://www.w3.org/Bugs/Public/show_bug.cgi?id=28339>

[24] Allow Range header to be set by APIs (jakearchibald著, ) <https://github.com/whatwg/fetch/commit/819d8c9d6617986a831ecd9cf21c34ba9589a890>

[25] Editorial: replace UTF-8 encode with isomorphic encode (annevk著, ) <https://github.com/whatwg/fetch/commit/ffbaefb5c4f68b9d619e9db6491fd665a30a2ffb>

[26] Editorial: replace UTF-8 encode with isomorphic encode by annevk · Pull Request #742 · whatwg/fetch () <https://github.com/whatwg/fetch/pull/742>

[27] Add ASCII encode and decode algorithms (jyasskin著, ) <https://github.com/whatwg/infra/commit/1d200b6e6f1d34114f18a4faaedd189291cf621f>

[32] Add ASCII encode and decode algorithms. by jyasskin · Pull Request #209 · whatwg/infra () <https://github.com/whatwg/infra/pull/209>

[33] Add ASCII encode and decode algorithms. by jyasskin · Pull Request #209 · whatwg/infra () <https://github.com/whatwg/infra/pull/209>

[34] Editorial: use "isomorphic decode" for Refresh header steps (irrationalRock著, ) <https://github.com/whatwg/html/commit/bef6f783084cdb6e591f2a9d8c731180413e8ef2>

[35] Use "isomorphic decode" explicitly for Refresh headers · Issue #3924 · whatwg/html () <https://github.com/whatwg/html/issues/3924>

[36] Changed Comment to Mention "isomorphic decode" by irrationalRock · Pull Request #3941 · whatwg/html () <https://github.com/whatwg/html/pull/3941>