7/14

空集合 (ISO/IEC 2022)

[7] ISO/IEC 2022規定する (くう) (しゅう) (ごう) (empty set) は、 定義された文字の存在しない文字集合です。

仕様書

指示シーケンス

[3] ISO/IEC 2022エスケープ・シーケンスの型のうち 1F, 2F, 4F, 8F, 9F, 10F, 11F, 13F, 14F, 15F では終端バイト 07/14空集合 (EMPTY SET) に予約されています。 JIS X 0202:1998 13.3.2, 14.1

[12] 終端バイト07/14 にした場合はその型に合わせた空集合指示されます。

[13] ここでいう「予約」は割り当てられているという意味で、 使っていけないという意味ではなさげです。

[5] >>3 の各型のエスケープ・シーケンスはいずれも指示に使われるものです。 つまり C0, C1, G0, G1, G2, G3空集合指示できます。

[18] 12F が抜けていますが、 12F96集合G0指示するものです。 一部で実装されていることもありますが、 ISO/IEC 2022 は認めていません。 指示シーケンス

[10] ISO/IEC 2022 は、 F = 07/14 の時空集合指示される ISO/IEC 2022 1994 14, >>9 と定めています。 この規定中間バイトに言及しておらず、 不明瞭で解釈の余地があります。

[14] 素直に解釈すれば中間バイトに関わらず F7/14 のときは空集合になるように読めます。

[36] ところが ISO-IR94集合中間バイト 2/1 の表の 7/14 欄は空欄 (未割当) になっていて >>37空集合ではなく、 別の符号化図形文字集合が登録されることが有り得そうに見えます。

[6] また、 DRCS中間バイト 2/0 があるときは、終端バイト7/14 でも空集合にはならないみたいです。 DRCS

[1] 一方で、 DOCS の ESC % / ~ は EMPTY SET ではないはずですが、 ISO-IR の表では EMPTY SET であるかのような色が塗られています。 ESC % ~ には塗られてないので、間違いだと思われます。 「DOCS空集合」 は意味を成しません。 ISO-IR の表の塗り方はあまり信用できないといえます。

[15] 現実的には今後新たな終端バイトISO-IR に登録される可能性は低い上、 空集合指示する必要性もほぼ無いので、 中間バイト付き 7/14空集合であろうがなかろうが、 困ることはなさそうです。


[19] 複数バイト集合指示シーケンスでも空集合が指定できます。 しかしそれが何バイトなのかはよくわかりません。 空集合ビット組合せは使用しないことになっているので、 仕様書としては規定する必要がないということなのでしょうか。 複数バイト集合終端バイトの割当の規則によれば4バイト以上と解釈されますが。。。 指示シーケンス


[20] IRR も参照。

文字集合

[4] 空集合文字を含まない集合です JIS X 0202:1998 14.1

[11] 空集合が指定された場合には、 対応するビット組合せを使用してはなりません (存在しない文字呼出してはなりません) JIS X 0202:1998 14.1

[2] ビット組合せが使われた時どう振る舞うべきかは不明です。 ISO/IEC 2022 のエラー処理の項

文脈

[16] この空集合をいつ何のために使うのかは謎です。

[17] 何も指示されていない初期状態を再現したいときに使えるのかもしれませんが、 そうしたい場面があるのかも謎です。

[21] CNS 5205 には C1 を使用しないため C17/14指示する、 C0 を使用しない場合には C07/14指示する、 とのエスケープシーケンスの説明の記述があります。

メモ