/
883.txt
256 lines (177 loc) · 10.6 KB
/
883.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
[10] [DFN[[CODE(charname)[[[IDENTIFY REVISED REGISTRATION]]]]]] ([DFN[[CODE(charname)@en[[[IRR]]]]]])
は、文字集合の[DFN[[[更新番号]]]]を表すものでした。
[[指示シーケンス]]の直前に置く[[エスケープシーケンス]]でした。
* 構文
[11]
:[[名前]]:[CODE(charname)@en[[[IDENTIFY REVISED REGISTRATION]]]]
:[[日本語通用名称]]:[CODE(jcharname)[[[改訂版の識別]]]]
:[[略号]]:[CODE(charname)@en[[[IRR]]]]
:[[符号化表現]]:
[CODE(char)[[CODE(charname)@en[[[ESC]]]] 02/06 [VAR[[[Ft]]]]]]
([[6F]] 型[[エスケープ・シーケンス]])
[REFS[
- [12] [[JIS X 0202]]:1998
-- [CSECTION[14.5 登録文字集合の改訂番号の識別]]
]REFS]
[13] [CODE(charname)@en[[[IRR]]]] は [[ISO-IR]]
に登録されている[[文字集合]]の[[改訂番号]]を識別します。
[SRC[[[JIS X 0202]]:1998 14.5]]
[27] [DFN@en[[CODE[6F]]]] 型[[エスケープ・シーケンス]]は、
[[文字集合改訂番号]] ([CODE(charname)@en[[[IDENTIFY REVISED REGISTRATION]]]])
に使われます。
[28]
仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[29]
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 6F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[6F 型エスケープ・シーケンス]] := IRR / 6F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[IRR]] := 標準 IRR / 私用 IRR [CODE(comment)[;; [CODE(charname)@en[[[IDENTIFY REVISED REGISTRATION]]]]]]]]
- [CODE(ABNF)[[DFN[標準 IRR]] := [CODE(charname)@en[[[ESC]]]] %x26 [[Ft]]]]
- [CODE(ABNF)[[DFN[私用 IRR]] := [CODE(charname)@en[[[ESC]]]] %x26 *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[6F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x21 1*[[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)[;; 標準終端バイト]]]]
[15]
[CODE(charname)@en[[[IRR]]]] は、
[[符号化制御機能集合]]を[[指示]]する [CODE(charname)@en[[[CZD]]]]
又は [CODE(charname)@en[[[C1D]]]] か、[[符号化図形文字集合]]を[[指示]]する
[CODE(charname)@en[[[G[VAR[n]]D[VAR[m]]]]]] か
[CODE(charname)@en[[[G[VAR[n]]DM[VAR[m]]]]]] の直前に置きます。
その直後に置かれた[[指示]]機能によって[[指示]]が行われる[[文字集合]]の改訂番号を
[CODE(charname)@en[[[IRR]]]] が識別します。
[SRC[[[JIS X 0202]]:1998 14.5.2]]
=revised-designation = IRR designation
=IRR = ESC %x26 F ;; IDENTIFY REVISED REGISTRATION
=F = %x40-7E
=designation = <[[ISO-IR]] に登録された[[文字集合の指示]]列 ([[C0]], [[C1]], [[G0]]〜[[G3]])>
* 文字集合の改訂と改訂番号
[14] '''文字集合の改訂''':
ここでいう[[文字集合]]の改訂とは次のように定められています
[SRC[[[JIS X 0202]]:1998 14.5]]。
- [[文字]]の追加だけが許されます。
- [[ISO 2375]] の手続きにより登録済み集合の改訂として登録しなければなりません。
- 現行版と上位互換性が無い場合は改訂ではありません。
[41]
改訂番号は 1〜63 で、 [CODE(char)[04/00]]〜[CODE(char)[07/14]]
に対応します。
[SRC[[[JIS X 0202]]:1998 14.5.2]]
[31]
改訂番号が割り当てられるのは、改訂後の版です。最初の版には
[CODE(charname)@en[IRR]]
を使い(え)ません。
[30]
[CODE(charname)@en[IRR]]
で[[私用終端バイト]]が使えるか使えないかは明言されていませんが、
改訂番号の範囲外なので使えなそうです。
[32]
改訂番号の意味は仕様書が明言していません。常識的に考えれば、
オリジナル → 改訂1 → 改訂2 → ・・・と順に改訂していると理解するべきでしょうが。
既存の利用例は改訂1を使ったものだけで、それ以外は未だ使われていません。
;; [33] オリジナル → 改訂1と矛盾するオリジナル → 改訂2の追加も認められる、
と解釈できないこともありませんが・・・。
[16] [CODE(charname)@en[[[IRR]]]] と[[指示]]機能を組合せることにより、
古い[[装置]]や[[システム]]も新しい版を認識できます。
[SRC[[[JIS X 0202]]:1998 14.5.2 参考]]
[17] >>16 つまり[[装置]]や[[システム]]は未知の
[CODE(charname)@en[[[IRR]]]] を無視しても良いということのようです。
改訂1はオリジナルとみなされます。
[34] >>32 の解釈に従えば、改訂 [VAR[n]] + 1 は改訂 [VAR[n]] とみなすことになります。
[18] ([[ISO/IEC2022]]:1994 14.5)
文字集合に文字の追加''だけ''が行われて、それが
[[ISO2375]] により [[ISO-IR]] に登録されている時に、 IRR
を使って更新文字集合を識別出来ます。
[42]
[[IRR]] と[[私用終端バイト]]の[[指示シーケンス]]を組合せられるのか明言されていませんが、
[[IRR]] の要件に [[ISO-IR]] への登録があるということは、
[[私用終端バイト]]の[[指示シーケンス]]には使えないということです。
[43]
[[IRR]] と[[空集合][空集合 (ISO/IEC 2022)]]の[[指示シーケンス]]を組合せられるのか明言されていませんが、
[[空集合]]の改訂とは意味がわかりませんし、
[[ISO-IR]] にその改訂を登録することも不可能でしょう。
[44]
[CODE(charname)@en[DOCS]] やその他の[[エスケープシーケンス]]とも組合せられません。
* IRR を利用した文字集合
[35]
[[ISO-IR]] には次の3つが登録されています。
,72 ,"Third Supplementary Set for Videotex, (Mosaic), CCITT",ESC <I> d
,173 ,"Third supplementary set of Mosaic Characters/ Videotex and Facsimile",ESC & @ ESC <I> d
;; [[94集合]]
,67 ,Additional Control Functions for Bibliographic Use according to ISO 6630 ,ESC " B
,124 ,Upward Compatible Version of ISO 6630 (Registration 67) ,ESC & @ ESC " B
;; [[C1集合]]
,87 ,JIS X 0208-1983 ,ESC $ [<I>] B
,168 ,JIS X 0208-1990 ,ESC & @ ESC $ [<I>] B
;; [[94[SUP[2]]集合]]
[36]
[[ISO-IR]] 未登録ですが、 [[ISO/IEC 6429]] に1つあります。
,73,C1 Control Set of ISO 6429-1983 ,ESC 02/02 04/03
,--,[[ISO/IEC6429]]:1992 C1 文字集合 ,ESC 02/06 04/00 ESC 02/02 04/03
[1] [[ISO/IEC6429のC1文字集合]]は、 ISO/IEC 6429:1992
において文字の追加と''削除''を伴う非互換な変更が行われました。
ISO/IEC 6429:1992 や [[JISX0202]]:1998
によるとこの新しい文字集合の[[指示]]・[[呼び出し]]シーケンスは上に示した改訂番号つきのものです。
[8] この改訂は、文字の追加のみの変更が認められるという
[[ISO/IEC2022]] の規定に違反しています。
(それで登録されなかったのでしょうか。
[[ISO/IEC 6429]] は [[SC2]] が制定したはずなのに、おかしいですね。)
[40]
[[ISO/IEC 10646]] は仕様書中で [[ISO/IEC 6429]] の[[指示シーケンス]]を説明していますが、
[CODE(charname)@en[IRR]] には言及していません。
[38]
改訂番号1 ([N[4/0]]) 以外の例は知られていません。
[37]
今後 [[ISO-IR]] に新たな [CODE(charname)@en[IRR]]
[[終端バイト]]が登録される可能性は低いと思われます。
他の[[規格]]で定義される可能性も低いと思われます。
* 誤り処理
[SEE[ [[エスケープシーケンス][ISO/IEC 2022エスケープシーケンス]]のエラー処理の項も参照 ]]
- [2] この改訂版号のエスケープ・シーケンスって、他のエスケープ・シーケンスとは違って直後のエスケープ・シーケンスに作用しますよね。直後に[[指示シーケンス]]がこなければ誤りなんですが、どう処理したら良いんでしょう? 単に捨てるだけでいいのかな。
- [3] >>2 他にどうしようもないような。表示しても仕方ないし。
- [4] 未知の更新シーケンスに遭遇したらどうすればいいのかも ISO/IEC 2022:1994 では規定されていません。無視して自分の知ってる版とみなして良いのかどうか。
- [5] 更新シーケンスが定義される 1994年版より前の ISO 2022 に対応した実装は更新シーケンスをどう扱えばいいのかもよくわかりませんね。まあそんなものが定義されているはずもないのですけど、古い実装は使われつづけるわけで。
- [6] >>5 もちろん正解は古い実装は捨てる、でしょう。
- [7] でも結局そしたら更新シーケンスの存在意義って謎。 >>4 が認められない限り、恩恵を受けるのは 1994 以前の古い実装だけですよ。あ、でも、書体を差分で実装しやすくするっていう効果もあるかもな。
* 実態
[9] [[IRR]] はほとんど使われませんでした。
[23] [[JIS X 0208]] の実装のほとんどは、
[[IRR]] なしの ESC $ B のまま [[JIS X 0208]]-1990 を実装 (= 2文字追加) していました。
[25] [[RFC 1468]] [[ISO-2022-JP]] は、
[[IRR]] を使用しないで [[JIS X 0208-1990]] を使おうとしていました。
[22]
[[DECの文字コード]]としての [[ISO-2022-JP]] 等は、
[[IRR]] なしの ESC $ B が [[JIS X 0208-1990]]
であるとしています。
[SEE[ [[DECの文字コード]] ]]
[24] [[JIS X 0208:1997]] の[[RFC1468符号化表現]]は、
ESC $ B が [[JIS X 0208:1997]] であるとしています。
[20]
[[ctext]]
では [[IRR]]
は使いません。
常に上方交換なので最新版とみなせるのだとされています。
[SEE[ [[ctext]] ]]
;; [21] そのような解釈が [[ISO/IEC 2022]] に適合するのかは怪しいですが。
[26]
[[ISO-IR 165]],
[[JIS X 0213:2000]] 第1面,
[[JIS X 0213:2004]] 第1面は
[[IRR]]
付きになってもよさそうなものでしたが、
使われずに新しい[[符号化図形文字集合]]として登録されました。
[39]
[[KS X 1001]]
や
[[KPS 9577]]
も改訂版が
[[IRR]]
付きになってもよさそうなものですが、
[[ISO-IR]] に登録されていません。
[45]
[[公開テキスト指示シーケンス]]では [[JIS X 0208-1990]] の記述に使われています。
* ISO/IEC 10646 における利用
[19]
[[ISO/IEC 10646]] で利用できるのかどうかは不明瞭です。
[SEE[ [[ISO/IEC 10646におけるエスケープシーケンス]] ]]
* メモ