- [1] 【[[文字コード]]】 [[符号化文字集合]]のうち、特に[[図形文字]] [WEAK[(及び予約あるいは使用しない[[符号位置]])]] だけから構成されるもの。 Coded graphic character set。 - [2] 単に[[図形文字集合]]とも。また、文脈によっては単に符号化文字集合で符号化図形文字集合をあらわすことも。 [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]] * 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[[バイト]]なのでしょうか・・・。 [[#comment]] * メモ