/
973.txt
185 lines (131 loc) · 8.18 KB
/
973.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
[1] [DFN[ISO/IEC 4873]]
[CITE[8‐Bit Coded Character Set Structure and Rules]]
([CITE[8ビット符号化文字集合の構造と規則]])
は、[[8ビット符号]]の構造を定めた[[国際規格]]です。
[10] 最新版は
[TIME[1991年][year:1991]]に発行されていました。
[2] [[ISO/IEC 4873]] に[[規定]]する[[符号構造]]は、 [[ISO/IEC 2022]]
に基づきます。この構造に基づいた具体的な[[符号化文字集合]]の例として、
[[ISO/IEC 8859]] があります。
* 仕様書
[11]
[[ECMA]]
版 ([[IDT]]) は
[DFN[ECMA 43]] です。
[REFS[
- [15] [DFN[[CITE[Standard ECMA-43]]]], [TIME[2020-01-24T08:38:33.000Z]], [TIME[2020-12-04T11:37:51.998Z]] <https://www.ecma-international.org/publications/standards/Ecma-043.htm>
-- 消滅確認 [TIME[2022-05-06T07:38:47.800Z]]
-- [CITE@en-US[ECMA-43 - Ecma International]], [TIME[2022-05-06T07:38:37.000Z]] <https://www.ecma-international.org/publications-and-standards/standards/ecma-43/>
-- [16] 第1版:
[CITE[[[ECMA-43]] 1st Edition, December 1974.pdf]], [TIME[2014-10-28T05:39:38.000Z]], [TIME[2020-12-04T11:39:18.907Z]] <https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-43%201st%20Edition,%20December%201974.pdf>
--- 消滅確認 [TIME[2022-05-06T07:39:12.00Z]]
--- [CITE[ECMA-43_1st_edition_december_1974.pdf]], [TIME[2021-01-16T09:56:48.000Z]], [TIME[2022-05-06T07:39:05.156Z]] <https://www.ecma-international.org/wp-content/uploads/ECMA-43_1st_edition_december_1974.pdf>
-- [17] 第2版:
[CITE[[[ECMA-43]], 2nd Edition, December 1985.pdf]], [TIME[2014-10-28T05:40:05.000Z]], [TIME[2020-12-04T11:39:40.980Z]] <https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-43,%202nd%20Edition,%20December%201985.pdf>
--- 消滅確認 [TIME[2022-05-06T07:39:27.900Z]]
--- [CITE[ECMA-43_2nd_edition_december_1985.pdf]], [TIME[2021-01-16T09:56:48.000Z]], [TIME[2022-05-06T07:39:19.235Z]] <https://www.ecma-international.org/wp-content/uploads/ECMA-43_2nd_edition_december_1985.pdf>
-- [13] 第3版:
[[Standard ECMA-43]]
[DFN[[CITE[8-Bit Coded Character Set Structure and Rules]]]],
3[SUP[rd]] Edition – December 1991,
Reprinted in electronic form in January 1999,
[TIME[2014-10-28T04:43:07.000Z]], [TIME[2020-10-07T07:14:26.929Z]] <https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-043.pdf>
--- 消滅確認
--- [CITE[ECMA-43_3rd_edition_december_1991.pdf]], [TIME[2021-01-16T09:56:48.000Z]], [TIME[2022-05-06T07:39:35.122Z]] <https://www.ecma-international.org/wp-content/uploads/ECMA-43_3rd_edition_december_1991.pdf>
]REFS]
[12] [CITE[00000001.PDF - 179.pdf]], [TIME[2014-06-23T02:15:52.000Z]], [TIME[2020-10-07T07:10:51.972Z]] <https://www.itscj.ipsj.or.jp/iso-ir/179.pdf>
[29] [DFN[GB/T 11383]] は、 [[ISO/IEC 4873]] に対応する[[中共]]国家規格です。
[30]
[DFN[GB 11383‐89]] [CITE[信息処理 信息交換用八位代碼結[木匂]和編碼規則]]
は ISO 4873:1986 に対応しており、
1989-06-12 に発布され、 1990-01-01 に実施されました。
[14]
[[CNS 7656]]
[31]
[DFN[KS X 1006:2003]]
は
[[MOD]] [[ISO 4873:1991]] です。
;; [32] なぜ [[IDT]] でないのか明記されておらずぱっとみではわからない。
*ISO/IEC 4873 の8ビット符号
[3] ISO/IEC 4873 に適合する符号は、次のような構造を持ちます
[SRC[ISO/IEC 4873:1991 6]]。
,*名前 ,*[[符号位置]],*明示的[[呼出]],*メモ
,[CODE(char)[[[C0]]]] 集合,"[CODE(char)[00/00]]〜[CODE(char)[00/13]], [CODE(char)[01/00]]〜[CODE(char)[01/15]]",なし,実装水準1以上
,[CODE(char)[[[SPACE]]]],[CODE(char)[02/00]],なし,実装水準1以上
,[CODE(char)[[[G0]]]] 集合,[CODE(char)[02/01]]〜[CODE(char)[07/14]],なし,実装水準1以上
,[CODE(char)[[[DELETE]]]],[CODE(char)[07/15]],なし,実装水準1以上
,[CODE(char)[[[C1]]]] 集合,[CODE(char)[08/00]]〜[CODE(char)[09/15]],なし,"実装水準1以上, 実装水準2以上では空集合以外"
,[CODE(char)[[[G1]]]] 集合,[CODE(char)[10/00]]〜[CODE(char)[15/15]],,"実装水準1以上, 実装水準2以上では空集合以外"
,[CODE(char)[[[G2]]]] 集合,,,実装水準2以上
,[CODE(char)[[[G3]]]] 集合,,,実装水準2以上
- 実装水準2以上では、 [CODE(char)[G2]] と [CODE(char)[G3]]
の両方が空集合であってはなりません。
- 実装水準2以上では、 [CODE(char)[G2]] と [CODE(char)[G3]]
をそれぞれ [CODE(char)[[[SS2]]]] と [CODE(char)[[[SS3]]]]
で''[[左]]''に呼出せます。
- 実装水準3では [CODE(char)[G1]]〜[CODE(char)[G3]]
をそれぞれ [CODE(char)[[[LS1R]]]], [CODE(char)[[[LS2R]]]],
[CODE(char)[[[LS3R]]]] で呼出せます。
- [CODE(char)[[[CR]]]] や [CODE(char)[[[BS]]]]
を使った[[重ね打ち]]は禁止されています。 [SRC[ISO/IEC 4873:1991 7]]
[[#comment]]
**C0 集合
[4] [CODE(char)[[[CL]]]] = [CODE(char)[C0]] は、
2[[符号位置]] [CODE(char)[00/14]] と [CODE(char)[00/15]]
[WEAK[(普通 [CODE(char)[[[LS1]]]] と [CODE(char)[[[LS0]]]] に使われます。)]]
の使用が禁止されており、 [CODE(char)[01/11]] が制御文字 [CODE(char)[[[ESCAPE]]]]
に固定されているほかは、割当は自由です。 [SRC[ISO/IEC 4873:1991 7.1]]
[25] 初版では [[ISO/IEC 646]] の [[C0]] に固定されていました。
**G0 集合
[5] [CODE(char)[[[GL]]]] = [CODE(char)[G0]] は、
[[ISO/IEC 646]] [[国際基準版]] ([[IRV]]) と同じです
[SRC[ISO/IEC 4873:1991 7.4]]。
;; [22] なぜか [[ISO/IEC 646]] を参照せず、同等の内容が規定されています。
[21]
[[ISO 4873-1985]] では完全には規定されていませんでした。
[[ISO/IEC 646の版]]が使えることになっていました。
;; [23] なぜか [[ISO 646]] を参照せず、同等の内容が規定されていました。
[24] [[ISO 4873]] の初版では、
[[情報交換の当事者間の合意]]がない時の既定の版も定められており、
それは[[旧IRV]]と同等のものでした。
**C1 集合
[6] [CODE(char)[[[CR]]]] = [CODE(char)[[[C1]]]] は、
[CODE(char)[[[SS2]]]] と [CODE(char)[[[SS3]]]] を使う場合には、
それぞれ [CODE(char)[08/14]] と [CODE(char)[08/15]]
に割当てなければなりません。使わない場合は、
両符号位置は使用禁止となっています。他の符号位置は自由です。
[SRC[ISO/IEC 4873:1991 7.6]]
** G2, G3
[26] [[G2]], [[G3]] は第2版で追加されました。
*図形文字の一意な符号化
[7]
[[図形文字の一意な符号化]]のため、
同じ[[名前][文字の名前]]の[[図形文字]]は、
[[G][G集合]] 番号の一番小さな集合に属する符号位置を使います。
[SRC[ISO/IEC 4873:1991 9.2]]
*実装水準の識別
[8] [[実装水準]]の識別には、 [[ISO/IEC 2022]] の[[告知シーケンス]]を使います。
[[終端バイト]]は [CODE(char)[04/12]] 〜 [CODE(char)[04/14]]
がそれぞれ実装水準 1 〜 3 に割当てられています。
[SRC[ISO/IEC 4873:1991 10.2, ISO/IEC 2022]]
[SEE[ [[告知シーケンス]] ]]
[9]
[[情報交換]]の途中で[[文字集合]]を替える場合や実装水準を変える場合には、
そこで実装水準の[[告知]]列と''全'' C / G 集合の[[指示]]列を入れる必要があります。
[SRC[ISO/IEC 4873:1991 10.4, 10.5]]
[27] 実装水準は第2版で追加されました。
* 合成文字
[19]
[CODE(charname)@en[GCC]] を使うことが出来ます。
[18]
[[重ね打ち]]は使ってはなりません。
[SEE[ [[重ね打ち]] ]]
[28] 以前の版では [CODE(charname)@en[GCC]] の利用は定められておらず、
[[重ね打ち]]が使えるとされていました。
* メモ
[20] [CITE@en[RFC 1502 - X.400 Use of Extended Character Sets]], [TIME[2021-01-24T15:50:13.000Z]], [TIME[2021-03-22T09:32:19.158Z]] <https://tools.ietf.org/html/rfc1502#page-9>
>NOTE: At the time of this writing, few applications that use ISO 4873
level 2 and level 3 encoding exist. It has been estimated that
implementing them in an application that already uses a rich
repertoire of characters is a matter of programmer-days, not
programmer-months, but this has not been proven.