/
241.txt
319 lines (225 loc) · 15 KB
/
241.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
[6] [[文字集合]]を[[指示]]する[[エスケープ・シーケンス]]を、[DFN[[RUBYB[指示シーケンス]@en[designate sequence]]]]といいます。
* 符号化文字集合の指示
[2]
>
:指示する (to designate):
[[文字集合]]を、即座に又は更に他の[[制御機能]]が[[出現]]してから、
所定の方法で[[表現]]できるように[[指定]]する。
[SRC[[[JIS X 0202]]:1998 4.11]]
[5]
> '''備考''' [[図形文字集合]]を [[G0]], [[G1]], [[G2]] 及び [[G3]]
の各[[要素]]として識別すること、及び[[制御機能集合]]を [[C0]] 及び [[C1]]
の各[[要素]]として識別することを、この規格では[Q[指示]]という。
[[集合]]の指示は、指示機能 (7.4 参照) 又は他の方法 (10.2 参照)
で行ってよい。 [SRC[[[JIS X 0202]]:1998 表1]]
[4] 指示によって暗黙のうちに[[呼出]]しが起こる場合:
- [[制御文字集合]]の [[C0]] または [[C1]] の[[符号要素]]への[[指示]]
[SRC[[[JIS X 0202]]:1998 7.3]]
- [[図形文字集合]]の [[G0]], [[G1]], [[G2]] または [[G3]]
への[[指示]]で、その[[符号要素]]が[[シフト状態]]になっている場合
[SRC[[[JIS X 0202]]:1998 7.3]]
- [12] [VAR[CZD]] := [CODE(charname)@en[ESC]] %x21 [VAR[F]] ;; C0-DESIGNATE [[ISO/IEC2022]] 1994 14.2.2
- [13] [VAR[C1D]] := [CODE(charname)@en[ESC]] %x22 [VAR[F]] ;; C1-DESIGNATE [[ISO/IEC2022]] 1994 14.2.3
CZD, C1D は、[[制御文字]]集合をそれぞれ [[C0]], [[C1]] に[[指示]]すると同時に、
[[CL]], [[CR]] or ESC Fe に[[呼び出し]]ます。
[[文字集合改訂番号]]を併用可能です。
=GZD4 = ESC %x28 [ ( I-R / DRCS ) ] F ;; G0-DESIGNATE 94-SET
=G1D4 = ESC %x29 [ ( I-R / DRCS ) ] F ;; G1-DESIGNATE 94-SET
=G2D4 = ESC %x2A [ ( I-R / DRCS ) ] F ;; G2-DESIGNATE 94-SET
=G3D4 = ESC %x2B [ ( I-R / DRCS ) ] F ;; G3-DESIGNATE 94-SET
=G1D6 = ESC %x2D [ ( I-R / DRCS ) ] F ;; G1-DESIGNATE 96-SET
=G2D6 = ESC %x2E [ ( I-R / DRCS ) ] F ;; G2-DESIGNATE 96-SET
=G3D6 = ESC %x2F [ ( I-R / DRCS ) ] F ;; G3-DESIGNATE 96-SET
=GZDM4 = ESC %x24 %x28 [ ( I-R / DRCS ) ] F / old-GZDM4 ;; G0-DESIGNATE MULTIBYTE 94-SET
=old-GZDM4 = ESC %x24 %x40-42 ;; See [[ISO/IEC2022] 1994 NOTE 46
=G1DM4 = ESC %x24 %x29 [ ( I-R / DRCS ) ] F ;; G1-DESIGNATE MULTIBYTE 94-SET
=G2DM4 = ESC %x24 %x2A [ ( I-R / DRCS ) ] F ;; G2-DESIGNATE MULTIBYTE 94-SET
=G3DM4 = ESC %x24 %x2B [ ( I-R / DRCS ) ] F ;; G3-DESIGNATE MULTIBYTE 94-SET
=G1DM6 = ESC %x24 %x2D [ ( I-R / DRCS ) ] F ;; G1-DESIGNATE MULTIBYTE 96-SET
=G2DM6 = ESC %x24 %x2E [ ( I-R / DRCS ) ] F ;; G2-DESIGNATE MULTIBYTE 96-SET
=G3DM6 = ESC %x24 %x2F [ ( I-R / DRCS ) ] F ;; G3-DESIGNATE MULTIBYTE 96-SET
GnDm, GnDMm は、[[図形文字]]集合をそれぞれ [[G0]] 〜 [[G3]]
に指示します。[[シフト状態]]によってはこれが同時に [[GL]] や [[GR]]
への呼び出しとなることもあります。 SELECT-DRCS 指示子や
[[文字集合改訂番号]]を併用可能です。
GnDMm では、何バイトの文字集合かが F の値で定まります。
([[ISO/IEC2022]] 1994 14.3.3)
,03/* ,2以上
,04/* ,2
,05/* ,2
,06/* ,3
,07/* ,4以上
=F = Fp / Fs
=Fs = %x40-7D / EMPTY-SET
=EMPTY-SET = %x7E
F = 07/14 の時、空集合が指示されます。 ([[ISO/IEC2022]] 1994 14)
F = 03/* の時に指示される文字集合は私用の集合です。
それ以外 (F = 04/00〜07/13) では、 [[ISO-IR]] に登録された文字集合が
指示されます。
[34]
GnM6 の ESC <I> 5/7 は [[ISO-IR]] で、 [[CCITT]]
が以前に使用していたから割り当てないと書いてあります。
(未登録のまま使ってたってことですか?)
** 追加分の中間バイト
- [32] [VAR[I-R]] := %x21-23
[33]
第2 or 第3中間バイトだけでは終端バイトが足りなくなった時に、
02/01 〜 02/03 を1つ使って、例えば ESC 02/08 02/01 04/00
で G0 に94図形文字集合を指示出来ます。
[35] [[94図形文字集合]]登録用の[[終端バイト]]はすべて使いきったので、
[[中間バイト]] [[2/1]] が使われ始めました。
** 1F型エスケープシーケンス
[14] [DFN@en[[CODE[1F]]]] 型[[エスケープ・シーケンス]]は、
[[符号化制御機能基本集合]] ([[C0]] 集合) の[[指示]]
([CODE(charname)@en[[[C0-DESIGNATE]]]])
に使われます。
[15]
仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[16] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 1F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[1F 型エスケープ・シーケンス]] := C0-DESIGNATE / 1F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[C0-DESIGNATE]] := 標準 C0-DESIGNATE / 私用 C0-DESIGNATE [CODE(comment)[;; [CODE(charname)@en[[[C0-DESIGNATE]]]]]]]]
- [CODE(ABNF)[[DFN[標準 C0-DESIGNATE]] := [CODE(charname)@en[[[ESC]]]] %x21 [%x21-23 *[[I]]__&&]&&__ [[Ft]]]]
- [CODE(ABNF)[[DFN[私用 C0-DESIGNATE]] := [CODE(charname)@en[[[ESC]]]] %x21 *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[1F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x21 (%x20 / %x24-2F) *[[I]] [[Ft]]]]
- [CODE(ABNF)[[DFN@en[I]] := %x20-2F [CODE(comment)[;; 中間バイト]]]]
- [CODE(ABNF)[[DFN@en[Fp]] := %x30-3F [CODE(comment)[;; 私用終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Ft]] := %x40-7E [CODE(comment)[;; 標準終端バイト]]]]
** 2F型エスケープシーケンス
[17] [DFN@en[[CODE[2F]]]] 型[[エスケープ・シーケンス]]は、
[[符号化制御機能補助集合]] ([[C1]] 集合) の[[指示]]
([CODE(charname)@en[[[C1-DESIGNATE]]]])
に使われます。
[18]
仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[19] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 2F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[2F 型エスケープ・シーケンス]] := C1-DESIGNATE / 2F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[C1-DESIGNATE]] := 標準 C1-DESIGNATE / 私用 C1-DESIGNATE [CODE(comment)[;; [CODE(charname)@en[[[C1-DESIGNATE]]]]]]]]
- [CODE(ABNF)[[DFN[標準 C1-DESIGNATE]] := [CODE(charname)@en[[[ESC]]]] %x22 [%x21-23 *[[I]]__&&]&&__ [[Ft]]]]
- [CODE(ABNF)[[DFN[私用 C1-DESIGNATE]] := [CODE(charname)@en[[[ESC]]]] %x22 *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[2F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x21 (%x20 / %x24-2F) *[[I]] [[Ft]]]]
- [CODE(ABNF)[[DFN@en[I]] := %x20-2F [CODE(comment)[;; 中間バイト]]]]
- [CODE(ABNF)[[DFN@en[Fp]] := %x30-3F [CODE(comment)[;; 私用終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Ft]] := %x40-7E [CODE(comment)[;; 標準終端バイト]]]]
** 8F型エスケープシーケンス
[20] [DFN@en[[CODE[8F]]]] 型[[エスケープ・シーケンス]]は、
[[94文字集合]]の [[G0]] への[[指示]]
([CODE(charname)@en[[[G0-DESIGNATE 94-SET]]]])
に使われます。
[21]
仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[22] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 8F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[8F 型エスケープ・シーケンス]] := G0D4 / 8F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[G0D4]] := 標準 G0D4 / 再定義可能 G0D4 / 私用 G0D4 [CODE(comment)[;; [CODE(charname)@en[[[G0-DESIGNATE 94-SET]]]]]]]]
- [CODE(ABNF)[[DFN[標準 G0D4]] := [CODE(charname)@en[[[ESC]]]] %x28 [%x21-23 *[[I]]__&&]&&__ [[Ft]]]]
- [CODE(ABNF)[[DFN[再定義可能 G0D4]] := [CODE(charname)@en[[[ESC]]]] %x28 %x20 *[[I]] [[F]]]]
- [CODE(ABNF)[[DFN[私用 G0D4]] := [CODE(charname)@en[[[ESC]]]] %x28 *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[8F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x28 (%x24-2F) *[[I]] [[Ft]]]]
- [CODE(ABNF)[[DFN@en[I]] := %x20-2F [CODE(comment)[;; 中間バイト]]]]
- [CODE(ABNF)[[DFN@en[F]] := Fp / Ft [CODE(comment)[;; 終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Fp]] := %x30-3F [CODE(comment)[;; 私用終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Ft]] := %x40-7E [CODE(comment)[;; 標準終端バイト]]]]
** 9F型エスケープシーケンス
[23] [DFN@en[[CODE[9F]]]] 型[[エスケープ・シーケンス]]は、
[[94文字集合]]の [[G1]] への[[指示]]
([CODE(charname)@en[[[G1-DESIGNATE 94-SET]]]])
に使われます。
[24]
仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[25] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 9F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[9F 型エスケープ・シーケンス]] := G1D4 / 9F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[G1D4]] := 標準 G1D4 / 再定義可能 G1D4 / 私用 G1D4 [CODE(comment)[;; [CODE(charname)@en[[[G1-DESIGNATE 94-SET]]]]]]]]
- [CODE(ABNF)[[DFN[標準 G1D4]] := [CODE(charname)@en[[[ESC]]]] %x29 [%x21-23 *[[I]]__&&]&&__ [[Ft]]]]
- [CODE(ABNF)[[DFN[再定義可能 G1D4]] := [CODE(charname)@en[[[ESC]]]] %x29 %x20 *[[I]] [[F]]]]
- [CODE(ABNF)[[DFN[私用 G1D4]] := [CODE(charname)@en[[[ESC]]]] %x29 *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[9F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x29 (%x24-2F) *[[I]] [[Ft]]]]
- [CODE(ABNF)[[DFN@en[I]] := %x20-2F [CODE(comment)[;; 中間バイト]]]]
- [CODE(ABNF)[[DFN@en[F]] := Fp / Ft [CODE(comment)[;; 終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Fp]] := %x30-3F [CODE(comment)[;; 私用終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Ft]] := %x40-7E [CODE(comment)[;; 標準終端バイト]]]]
** 10F型エスケープシーケンス
[26] [DFN@en[[CODE[10F]]]] 型[[エスケープ・シーケンス]]は、
[[94文字集合]]の [[G2]] への[[指示]]
([CODE(charname)@en[[[G2-DESIGNATE 94-SET]]]])
に使われます。
[27] 仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[28] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 10F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[10F 型エスケープ・シーケンス]] := G2D4 / 10F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[G2D4]] := 標準 G2D4 / 再定義可能 G2D4 / 私用 G2D4 [CODE(comment)[;; [CODE(charname)@en[[[G2-DESIGNATE 94-SET]]]]]]]]
- [CODE(ABNF)[[DFN[標準 G2D4]] := [CODE(charname)@en[[[ESC]]]] %x2A [%x21-23 *[[I]]__&&]&&__ [[Ft]]]]
- [CODE(ABNF)[[DFN[再定義可能 G2D4]] := [CODE(charname)@en[[[ESC]]]] %x2A %x20 *[[I]] [[F]]]]
- [CODE(ABNF)[[DFN[私用 G2D4]] := [CODE(charname)@en[[[ESC]]]] %x2A *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[10F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x2A (%x24-2F) *[[I]] [[Ft]]]]
- [CODE(ABNF)[[DFN@en[I]] := %x20-2F [CODE(comment)[;; 中間バイト]]]]
- [CODE(ABNF)[[DFN@en[F]] := Fp / Ft [CODE(comment)[;; 終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Fp]] := %x30-3F [CODE(comment)[;; 私用終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Ft]] := %x40-7E [CODE(comment)[;; 標準終端バイト]]]]
** 11F型エスケープシーケンス
[29] [DFN@en[[CODE[11F]]]] 型[[エスケープ・シーケンス]]は、
[[94文字集合]]の [[G3]] への[[指示]]
([CODE(charname)@en[[[G3-DESIGNATE 94-SET]]]])
に使われます。
[30] 仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[31] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 11F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[11F 型エスケープ・シーケンス]] := G3D4 / 11F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[G3D4]] := 標準 G3D4 / 再定義可能 G3D4 / 私用 G3D4 [CODE(comment)[;; [CODE(charname)@en[[[G3-DESIGNATE 94-SET]]]]]]]]
- [CODE(ABNF)[[DFN[標準 G3D4]] := [CODE(charname)@en[[[ESC]]]] %x2B [%x21-23 *[[I]]__&&]&&__ [[Ft]]]]
- [CODE(ABNF)[[DFN[再定義可能 G3D4]] := [CODE(charname)@en[[[ESC]]]] %x2B %x20 *[[I]] [[F]]]]
- [CODE(ABNF)[[DFN[私用 G3D4]] := [CODE(charname)@en[[[ESC]]]] %x2B *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[11F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x2B (%x24-2F) *[[I]] [[Ft]]]]
- [CODE(ABNF)[[DFN@en[I]] := %x20-2F [CODE(comment)[;; 中間バイト]]]]
- [CODE(ABNF)[[DFN@en[F]] := Fp / Ft [CODE(comment)[;; 終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Fp]] := %x30-3F [CODE(comment)[;; 私用終端バイト]]]]
- [CODE(ABNF)[[DFN@en[Ft]] := %x40-7E [CODE(comment)[;; 標準終端バイト]]]]
*DRCS: 動的再指定可能文字集合
See [[DRCS]]
*3つの 94[SUP[2]] 文字集合の指示の例外規定
-ESC 02/04 (04/00 / 04/01 / 04/02) ;; Ft の文字集合を [[G0]] に指示
古い ISO 2022 では 94[SUP[2]] 文字集合は G0
にしか指示出来ませんでした。その時の名残でこれらの3つの文字集合を
G0 に指示する時は 02/08 を省きます。ここで 02/08 を挟むと
厳密には ISO/IEC 2022 に適合しません。 ([[JISX0202]]:1998 13.2.3
備考)
この点で [[X]] の [[CompoundText]] は ISO/IEC 2022
に適合しません。
*ISO/IEC 2022, 6429 の定義
指示する (to designate) [[文字集合]]を、即座にまたは更に他の
[[制御機能]]が出現してから、所定の方法で表現出来るように
指定すること。 ([[JISX0211]]-1994 4.2.31)
- [3] G[VAR[n]]M6 の [CODE[ESC]] [VAR[I]] [CODE[5/7]] は、 [[NAPLPS]] で使います。これが公式に登録されずに、その[[終端バイト]]には割り当てないことになったのは、その集合が[[図形文字集合]]ではなかったからでしょう。
* 初期状態
[8]
[[ISO/IEC 2022]] に基づく[[符号]]体系は普通は初期状態でいくつかの[[符号化文字集合]]を[[指示]]した状態と定義されています。
例えば[[日本語EUC]]では [[G0]] に [[ASCII]] が、
[[G1]] に [[JIS X 0208]] が[[指示]]された状態となっています。
[9]
[[ISO/IEC 2022]] 単体において、[[指示]]がないときの初期状態がどうなっているのか、
あまり明確ではありません。
[[空集合]]が[[指示]]されている場合のような、
それに属するどの[[ビット組合せ]]も[[使用禁止]]の状態と解するべきなのでしょうか。
[10]
なお[[C0集合]]については、[[固定符号化文字]] [CODE(charname)@en[ESCAPE]]
のみは始めから利用可能な状態と規定されています。
[SEE[ [[固定符号化文字]] ]]
[11] 関連: [[呼び出し][呼び出し (ISO/IEC 2022)]]
* 文脈
[7] [[SGML]] では、これを[[ASCII文字]]で表記した[[公開テキスト指示シーケンス]]も使われました。
* メモ
[1] ''指示''は ''indicate'', ''designate'' などの訳語として使われます。