[[ISO/IEC2022]] 系の7ビット符号と8ビット符号は、 両者間の変換の便宜のために、ちょいと困った例外規定があります。 次の場所は本来左を使いますが、8ビット符号では右を使っても構いません。 ([[ISO/IEC6429]] 9) -[[制御列]]の P,I,F バイト -[[制御文字列]]の命令列または文字列 -単独シフト制御機能の対象 (かつて [[EUC]] はこの規定を根拠に SS2, SS3 の後で [[GR]] を使っていました。(と解釈されていました。) これは後の [[ISO/IEC2022]] の改訂で例外扱いでは無しに、 SS + GR を使えることになりました。) 7ビット符号では次のところに SI や SO が来ても構いません。 ([[ISO/IEC6429]] 9) -制御列の CSI と終端バイトの間 -制御文字列の開始区切子と ST の間 -単独シフト制御機能と対象の間 (制御文字列では元々 00/14 と 00/15 は使えると思うんですが... それと区別する必要があるんですかね? (あるとしても無理だが。)) 7ビット符号では次のところに [[GL]] が来ても構いません。 -LS1R, LS2R, LS3R と次の固定シフトの間 これらの規定が設けられたのは、おそらく古い ISO/IEC 2022 の規定に従って設計された7ビット←→8ビット変換器を[[CCデータ要素]] が通過した時に、新しい ISO/IEC 2022 の機能を使っていても 最終的に新しい ISO/IEC 2022 の受信装置が理解出来るように、 ということだと思われます。 ところで、 SI や SO って [[C0]] 制御文字集合に何を使うかによって 符号位置が変化する(可能性がある)んじゃないですか... めんどいなぁ。