7ビット符号と8ビット符号の変換

7ビット符号と8ビット符号 (ISO/IEC 2022)

[3] ISO/IEC 2022 には 7ビット符号8ビット符号があります。

[1] 歴史的経緯以外に7ビット符号と8ビット符号の2種類あって嬉しいことってあるんだろうか? (確かに一部の世界・プロトコルではその「歴史的経緯」 が重たいのではありますが。)

[2] むしろ7ビットと8ビットで ISO/IEC 2022符号化文字データ要素の解釈が微妙に変化する部分がある (例外とはいえ。) 方が弊害が大きいですよね。 (今更どうにもなりませんけどね。)

8ビット符号から7ビット符号へ

(ISO/IEC2022 1994 11)

7ビット符号から8ビット符号へ

8ビット符号から変換された7ビット符号の時は、 LS1R, LS2R, LS3R が出現するかもしれないから、それを復元する 必要があるかも(may)。

(ISO/IEC2022 1994 11)

変換に関係する例外的規定

ISO/IEC2022 系の7ビット符号と8ビット符号は、 両者間の変換の便宜のために、ちょいと困った例外規定があります。

[4] Standard master - ECMA-48_5th_edition_june_1991.pdf, , https://www.ecma-international.org/wp-content/uploads/ECMA-48_5th_edition_june_1991.pdf#page=88

次の場所は本来左を使いますが、8ビット符号では右を使っても構いません。 (ISO/IEC6429 9)

(かつて EUC はこの規定を根拠に SS2, SS3 の後で GR を使っていました。(と解釈されていました。) これは後の ISO/IEC2022 の改訂で例外扱いでは無しに、 SS + GR を使えることになりました。)

7ビット符号では次のところに SI や SO が来ても構いません。 (ISO/IEC6429 9)

(制御文字列では元々 00/14 と 00/15 は使えると思うんですが... それと区別する必要があるんですかね? (あるとしても無理だが。))

7ビット符号では次のところに GL が来ても構いません。 (ISO/IEC2022 1994 11)

これらの規定が設けられたのは、おそらく古い ISO/IEC 2022 の規定に従って設計された7ビット←→8ビット変換器をCCデータ要素 が通過した時に、新しい ISO/IEC 2022 の機能を使っていても 最終的に新しい ISO/IEC 2022 の受信装置が理解出来るように、 ということだと思われます。

ところで、 SI や SO って C0 制御文字集合に何を使うかによって 符号位置が変化する(可能性がある)んじゃないですか... めんどいなぁ。

メモ