- [1] 【[[文字コード]]】 [[符号化文字集合]]のうち、特に[[図形文字]] [WEAK[(及び予約あるいは使用しない[[符号位置]])]] だけから構成されるもの。 Coded graphic character set。
- [2] 単に[[図形文字集合]]とも。また、文脈によっては単に符号化文字集合で符号化図形文字集合をあらわすことも。

[22] [DFN[[RUBYB[図形文字集合][Graphic character set]]]]
([RUBYB[符号化図形文字集合][coded graphic character set]]) とは、
(主として) [[図形文字]]で構成される[[符号化文字集合]]です。


[7] 符号化図形文字集合の種類 [SRC[[[JIS X 0202]]:1998 6.3.1]]:
- [[94文字集合]] ([CODE(char)[02/01]]〜[CODE(char)[07/14]])
- [[96文字集合]] ([CODE(char)[02/00]]〜[CODE(char)[07/15]])
- [[複数バイト集合]]
-- [[94[SUP[[VAR[n]]]]文字集合]] 
(([CODE(char)[02/01]]〜[CODE(char)[07/14]]) × [VAR[n]])
-- [[96[SUP[[VAR[n]]]]文字集合]]
(([CODE(char)[02/00]]〜[CODE(char)[07/15]]) × [VAR[n]])


[3] 符号化図形文字集合の要件:
-[4] [[符号化図形文字集合]]で定める各[[ビット組合せ]] (の列)
には[[一意]]の[[図形文字]]を[[割当]]てるか、
または使用しないかを宣言しなければなりません。
[SRC[[[JIS X 0202]]:1998 6.3.2]]
-[5] [CODE(charname)[[[SPACE]]]] や [CODE(charname)[[[DELETE]]]] 
や[[制御文字]]を含んではなりません。 [SRC[[[JIS X 0202]]:1998 6.3.2]]
--[6] ただし、 [CODE(charname)[[[SPACE]]]] 
でない異なる[[大きさ]]や[[用法]]の[[間隔]]を[[表現]]する[[文字]]は[[割当]]てても構いません。
[SRC[[[JIS X 0202]]:1998 6.3.2]]


*ISO/IEC 2022 における符号化図形文字集合の要件

[23] [[ISO/IEC 2022]] では、[[符号化図形文字集合]]は、
次のように規定されています。

-[24] [[ビット組合せ]] (又はその列) には一意の[[図形文字]]を割り当てるか、
又は使用しないかを宣言しなければならない。 ([[JIS X 0202]]:1998 6.3.2 を参照)
-[25] 文字 [CODE(char)[[[SPACE]]]], [CODE(char)[[[DELETE]]]], 
[[制御文字]]を含めてはならない。 
(異なる大きさまたは用法の[[間隔]]を表現する文字は割り当ててよい。) 
([[JIS X 0202]]:1998 6.3.2 を参照)

[26] [[ISO/IEC 8859]]‐8:2001 とか、この要件を満たすのか怪しいもんですなあ。

[28] [CITE[00000001.PDF - 150.pdf]], [TIME[2022-11-02T03:16:23.000Z]], [TIME[2022-12-10T05:28:36.350Z]] <https://itscj.ipsj.or.jp/ir/150.pdf>

[29] >>28 使用してはならないが、受信したらこのような[[図形文字]]と解釈すること、
と定められた[[ビット組合せ]]があります。

[30] 
[[図形文字]]なのか怪しい [CODE(charname)@en[LRM]], [CODE(charname)@en[RLM]]
その他 [[bidi]] 系文字が割り当てられた[[96集合]]もあります。

[31] 
[[図形文字]]なのか怪しいものの[[図形文字]]とされている
[CODE(charname)@en[NBSP]],
[CODE(charname)@en[SHY]]
が割り当てられた[[96集合]]は多数あります。
[[JIS X 0213]] にもあります。

[32] 
[[ISO-IR]] で[[外字]]が認められている例:
[[KS X 1001]],
[[JIS X 0212]],
[[ISO-IR 165]],
[[KPS 9566]]



* G[VAR@en[n]]

[19] [[ISO/IEC 2022]] では[[符号化図形文字集合]]は[[符号要素]]
[[G[VAR[n]]]] ([[G0]], [[G1]],
[[G2]], [[G3]]) のいずれかに[[指示]]され、更に [[GL]]、[[GR]] に[[呼び出し]]されることによって利用できる状態となります。

* 指示

[8] [[符号要素]]としての[[図形文字集合]]の[[指示]]について。

[9]
仕様書:
- [[JIS X 0202]]:1998
-- [CSECTION[14.3 図形文字集合の指示 (GnDm, GnDMm)]]

[10] [[図形文字集合]]を[[指示]]する[[機能]]は
[[ISO/IEC 2022]] では14種類あります。
[[情報交換]]の開始時に [[G0]]〜[[G3]] 
で使用する[[図形文字集合]]を識別する場合や
4つ以上の[[図形文字集合]]を使用する場合や [[G0]]〜[[G3]]
のいずれかに後から異なる[[図形文字集合]]を[[指示]]する必要がある場合に使うことができます
[SRC[[[JIS X 0202]]:1998 14.3.1]]。

[12] [SRC[[[JIS X 0202]]:1998 表6]]

,*[[略号]],*[[名前]],*[[集合]]の型,*[[符号要素]],*[[エスケープ・シーケンス]],*出典
,[CODE(charname)@en[[[GZD4]]]],[CODE(charname)@en[[[G0-DESIGNATE 94-SET]]]],94,[[G0]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/08 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G1D4]]]],[CODE(charname)@en[[[G1-DESIGNATE 94-SET]]]],94,[[G1]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/09 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G2D4]]]],[CODE(charname)@en[[[G2-DESIGNATE 94-SET]]]],94,[[G2]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/10 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G3D4]]]],[CODE(charname)@en[[[G3-DESIGNATE 94-SET]]]],94,[[G3]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/11 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[GZD6]]]],[CODE(charname)@en[[[G0-DESIGNATE 96-SET]]]],96,[[G0]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/12 *[VAR[I]] [VAR[F]]]],
,[CODE(charname)@en[[[G1D6]]]],[CODE(charname)@en[[[G1-DESIGNATE 96-SET]]]],96,[[G1]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/13 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G2D6]]]],[CODE(charname)@en[[[G2-DESIGNATE 96-SET]]]],96,[[G2]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/14 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G3D6]]]],[CODE(charname)@en[[[G3-DESIGNATE 96-SET]]]],96,[[G3]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/15 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[GZDM4]]]],[CODE(charname)@en[[[G0-DESIGNATE MULTIBYTE 94-SET]]]],94[SUP[[VAR@en[n]]]],[[G0]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/08 *[VAR[I]] [VAR[F]]]] (>>13),[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G1DM4]]]],[CODE(charname)@en[[[G1-DESIGNATE MULTIBYTE 94-SET]]]],94[SUP[[VAR@en[n]]]],[[G1]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/09 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G2DM4]]]],[CODE(charname)@en[[[G2-DESIGNATE MULTIBYTE 94-SET]]]],94[SUP[[VAR@en[n]]]],[[G2]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/10 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G3DM4]]]],[CODE(charname)@en[[[G3-DESIGNATE MULTIBYTE 94-SET]]]],94[SUP[[VAR@en[n]]]],[[G3]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/11 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[GZDM6]]]],[CODE(charname)@en[[[G0-DESIGNATE MULTIBYTE 96-SET]]]],96[SUP[[VAR@en[n]]]],[[G0]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/12 *[VAR[I]] [VAR[F]]]],
,[CODE(charname)@en[[[G1DM6]]]],[CODE(charname)@en[[[G1-DESIGNATE MULTIBYTE 96-SET]]]],96[SUP[[VAR@en[n]]]],[[G1]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/13 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G2DM6]]]],[CODE(charname)@en[[[G2-DESIGNATE MULTIBYTE 96-SET]]]],96[SUP[[VAR@en[n]]]],[[G2]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/14 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]
,[CODE(charname)@en[[[G3DM6]]]],[CODE(charname)@en[[[G3-DESIGNATE MULTIBYTE 96-SET]]]],96[SUP[[VAR@en[n]]]],[[G3]],[CODE(char)@en[[CODE(charname)[[[ESC]]]] 02/04 02/15 *[VAR[I]] [VAR[F]]]],[[ISO/IEC 2022]]

[13] 例外: 
[CODE(charname)@en[[[ESC]] 02/04 02/08 04/00]],
[CODE(charname)@en[[[ESC]] 02/04 02/08 04/01]],
[CODE(charname)@en[[[ESC]] 02/04 02/08 04/02]] ''ではなく''、
[CODE(charname)@en[[[ESC]] 02/04 04/00]],
[CODE(charname)@en[[[ESC]] 02/04 04/01]],
[CODE(charname)@en[[[ESC]] 02/04 04/02]] とします。
[[ISO/IEC 2022]] の古い版で[[多バイト集合]]は 
[[94[SUP[[VAR@en[n]]]]文字集合]]しかなく、
しかも [[G0]] にしか[[指示]]できなかった時にこの
3つの[[終端バイト]]が登録されたことに起因します。
[SRC[[[JIS X 0202]]:1998 表6]]

[14]
各機能は、該当する型の[[集合]]を指定された[[符号要素]]として[[指示]]します。
どの[[集合]]かは[[中間バイト]]と[[終端バイト]]
([CODE(char)@en[*[VAR[I]] [VAR[F]]]]) で識別されます。
ある[[集合]]を[[指示]]すると、
その[[符号要素]]に[[指示]]されていた[[集合]]は置き換えられます。
[SRC[[[JIS X 0202]]:1998 14.3.2]]

[11] これらの[[指示]]機能では、
[CODE(charname)@en[[[SELECT-DRCS]]]] [[指示子]]を使うことができます。
[CODE(charname)@en[[[SELECT-DRCS]]]] [[指示子]]を使った場合に限って
[[DRCS]] を[[指示]]できます。
[SRC[[[JIS X 0202]]:1998 14.3.2]]

[15] [[指示]]機能の直前に 
[CODE(charname)@en[[[IDENTIFY REVISED REGISTRATION]]]]
([CODE(charname)@en[[[IRR]]]]) を使うことができます。
[SRC[[[JIS X 0202]]:1998 14.3.1]]

([[JIS]] は誤植で [CODE(charname)@en[IDENTIFY-RESERVED-REGISTRATION]]
になっています。)

[16] [[図形文字集合]]の[[指示]]は[[符号要素]]の[[シフト状態]]と関係なく行えます。
指定された[[符号要素]]が[[シフト状態]]にあれば、
[[指示]]された[[図形文字集合]]は直ちに[[呼出]]されます。そうでなければ、
次に[[シフト状態]]になった時に[[図形文字集合]]が[[呼出]]されます。
[SRC[[[JIS X 0202]]:1998 14.3.2]]

[17] [CODE(charname)@en[G[VAR[n]]DM[VAR[m]]]]
では[[終端バイト]]によって集合の型の [CODE(math)@en[[VAR[n]]]]
が決まります。
[SRC[[[JIS X 0202]]:1998 14.3.3]]

,[[終端バイト]] [CODE(char)@en[[VAR[[[F]]]]]],[CODE(math)@en[[VAR[n]]]]
,[CODE(char)@en[[[Fp]]]] ([CODE(char)[03/00]]〜[CODE(char)[03/15]]),2 [[以上]]
,[CODE(char)[04/00]]〜[CODE(char)[05/15]],2
,[CODE(char)[06/00]]〜[CODE(char)[06/15]],3
,[CODE(char)[07/00]]〜[CODE(char)[07/14]],4 [[以上]]

[18] >>17 で
[CODE(char)[07/14]] も 4 [[以上]]の範囲に入っています。
[[空集合]]は4[[バイト]]なのでしょうか・・・。


* 関連

[27] (符号化)図形文字集合に対して、[[制御文字]]の集合を、
(符号化)[[制御文字集合]]といいます。


* メモ


[20] [CITE[ETS 300 706 - Enhanced Teletext specification - ets_300706e01p.pdf]], [TIME[2000-02-02T20:07:05.000Z]], [TIME[2020-12-05T05:21:02.025Z]] <https://www.etsi.org/deliver/etsi_i_ets/300700_300799/300706/01_60/ets_300706e01p.pdf#page=73>

[CODE[2/0]] [CODE(charname)@en[SPACE]] から [CODE[7/F]]
までを
[[G0]]
としていた。

[21] [CITE[ETS 300 706 - Enhanced Teletext specification - ets_300706e01p.pdf]], [TIME[2000-02-02T20:07:05.000Z]], [TIME[2020-12-05T05:26:03.256Z]] <https://www.etsi.org/deliver/etsi_i_ets/300700_300799/300706/01_60/ets_300706e01p.pdf#page=126>

[[G1]] の特定の[[ビット組合せ]]は、
[[G0]] に[[指示]]されている[[図形文字集合]]の同じ[[ビット組合せ]]の[[文字]]を表すらしい。

