-
Notifications
You must be signed in to change notification settings - Fork 4
/
618.txt
156 lines (115 loc) · 7.01 KB
/
618.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
[26]
[DFN[C1]] は、補助的な[[制御文字]]のための[[符号化文字集合]]です。
[27]
[[ISO/IEC 2022]] の符号構造における [[CR領域]]や、
[[[CODE(charname)@en[ESC]] [VAR[Fe]]]]
型の[[エスケープシーケンス]]で利用できます。
[28]
[[Unicode]] では [CODE[U+0080]] - [CODE[U+009F]] や、
[[[CODE(charname)@en[ESC]] [VAR[Fe]]]]
型の[[エスケープシーケンス]]で利用できます。
* 概要
[6] 符号化制御機能補助集合は、 [DFN[C1]]
とも呼ばれます [SRC[[[JIS X 0202]]:1998 6.4.4]]。
[1] 符号化制御機能補助集合の要件:
- [2] 各[[ビット組合せ]]には[[一意]]な[[制御機能]]を[[割当]]てるか、
または使用しないかを宣言しなければなりません
[SRC[[[JIS X 0202]]:1998 6.4.1]]。
- [3] [CODE(charname)[[[ESCAPE]]]] を含んではなりません
[SRC[[[JIS X 0202]]:1998 6.4.1, 6.4.3]]。
- [5] [[JIS X 0211]] の[[符号化制御機能基本集合]]の[[伝送制御機能]]を含んではなりません
[SRC[[[JIS X 0202]]:1998 6.4.3]]。
[4] 符号化制御機能補助集合は、 [CODE(char)[[[CR]]]]
([CODE(char)[08/00]]〜[CODE(char)[09/15]])
に[[呼出]]された時にはその[[ビット組合せ]]1つで[[制御文字]]として[[表現]]できます。
また、[[エスケープ・シーケンス]]
[CODE(char)[[CODE(charname)[[[ESC]]]] [VAR[Fe]]]]
([CODE(math)[[VAR[Fe]] = [CODE(char)[04/00]]〜[CODE(char)[05/15]]]])
のでも[[表現]]できます。
[SRC[[[JIS X 0202]]:1998 6.4.3]]
[7] >>4 の後者の[[エスケープ・シーケンス]]による[[表現]]は、
[[制御文字]]ではありません (定義上)。一般に [[C0]] や [[C1]]
は[[制御文字集合]]と呼ばれますが、
わざわざそうではなく[[制御機能]]の[[集合]]だとしているのはそういう理由と思われます。
[8] [[8ビット符号]]で[[単独シフト機能]]を使用する場合は、
[[符号化制御機能補助集合]] ([[C1]]) に
[CODE(charname)[[[SS2]]]] と [CODE(charname)[[[SS3]]]]
が含まれなければなりません [SRC[[[JIS X 0202]]:1998 8.5.2]]。
[[7ビット符号]]で [[単独シフト機能]]を使用する場合は、
[[符号化制御機能基本集合]] ([[C0]]) または
[[符号化制御機能補助集合]] ([[C1]]) に
[CODE(charname)[[[SS2]]]] と [CODE(charname)[[[SS3]]]]
が含まれなければなりません [SRC[[[JIS X 0202]]:1998 9.5.2]]。
[16]
[[C1文字集合]]とは、
Supplementary sets of coded control functions。
符号化制御機能の補助集合 ([[JISX0202]]:1998 6.4.3)。
[[C1]][[制御文字]]集合。
[18]
8ビット環境では [[CR]] (08/00〜09/15) に[[指示]]・[[呼び出し]]
して使う。または、 [[ESC]] Fe (Fe = 04/00〜05/15) を使う。
ESC Fe を使う時は、 [[CR]] は使用しない。
逆も然り。 ([[ISO/IEC2022]] 1994 8.5.2)
[17]
[[ESCAPE]] を含めない (shall not)。 [[ISO/IEC6429]]/[[JISX0211]]
の [[C0文字集合]]の[[伝送制御機能]] transmission
control function も含めない (shall not)。 ([[ISO/IEC2022]] 1994 6.4,
[[JISX0202]]:1998 6.4.2)
[19] SS2 と SS3 を含める(shall)。 ([[ISO/IEC2022]] 1994 8.5.2)
[20] 実際には (おそらく ISO.IEC 2022 の規定ができる以前で) [CODE(charname)[SS2]] や [CODE(charname)[SS3]] を持っていない C1 集合もあります。
[21] 仕様書はよく読むと、これら[[シフト機能]]を使う[[符号]]は、
と限定があります。使うなら含める、使わないなら含めなくてよい。
ほとんど何も言っていないのと同じことで、
[CODE(charname)@en[SS2]] や [CODE(charname)@en[SS3]]
がない [[C1集合]]にも何の問題もないわけです。
[11] '''呼出し''':
[[8ビット符号]]の[[符号要素]] [[C1]] に[[符号化制御機能補助集合]]を[[指示]]すると、
同時にその[[集合]]を[[呼出]]すことになります。その場合、
[[CR]] 領域に[[呼出]]すか、または
[CODE(char)[[CODE(charname)[[[ESC]]]] [VAR[Fe]]]]
型の[[エスケープ・シーケンス]]
([CODE(char)[[VAR[Fe]]]] は [CODE(char)[04/00]]〜[CODE(char)[05/15]])
で[[呼出]]すかのいずれかになります。
後者の場合は [[CR]] 領域は使用しないことになります。
どちらの方法を採るかは、[[符号の版]]で規定します。
[[7ビット符号]]の場合は、
[CODE(char)[[CODE(charname)[[[ESC]]]] [VAR[Fe]]]]
型の[[エスケープ・シーケンス]]で[[呼出]]します。
[SRC[[[JIS X 0202]]:1998 8.5.2]]
[12] [[C0]] と [[CL]] が (歴史的事情も含めて) 混用されているように、 [[C1]] と [[CR]] も混同されぎみです。但し、7ビット・8ビット問題がある関係上、 C0/CL より C1/CR の区別の方がやや理解されているとは思われます。
[13] C1 文字集合は、[[指示]]した後、 [[CR]] 領域の[[符号位置]]に[[呼び出し]]されているものを使うことも出来ますし、 [[ESC]] [VAR[Fe]] 形式で表現することが出来ます。
[14] CR 領域は [CODE[08/00]]〜[CODE[09/15]] ですから8ビット, ESC [VAR[Fe]] 形式は [CODE[01/11]] [CODE[04/00]]〜[CODE[05/15]] ですから7ビットで表現されます。どちらを使うか、あるいはどちらも使えるかは、[[告知]]シーケンス (又は情報交換の当事者間の合意) により決定します。
[15]
[CITE[ISO-8859-* and the C1 control range]] ([[Henri Sivonen <hsivonen@...>]] 著, [TIME[2007-05-29 10:13:25 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/10846>
([[名無しさん]] [WEAK[2007-06-04 11:57:24 +00:00]])
[29]
[[JIS X 0211]] [CODE(charname)@en[SS3]] だけの [[C1]] - [[JIS X 0213]]
* Unicode
[9] 理論上は [[Unicode]] ([[ISO/IEC 10646]]) 環境下でも
[[CR]] や[[エスケープシーケンス]]によって [[C1]] を使うことは可能です。
[10] 現実には、従来の[[端末]]の[[エスケープシーケンス]]機能を現在まで引き続き実装しているような例外を除き、
使われることはありません。
[SEE[ [[ISO/IEC 10646におけるエスケープシーケンス]] ]]
* 非制御文字
[23]
[[ISO/IEC 2022]] の符号構造では、
[[C1制御文字集合]]の[[ビット組合せ]]のすべては[[制御文字]]に割当 (または未割当)
しなければなりません。
[25]
[[MARC-8]] ([[ANSEL]])
は
[[C1]] に [CODE(charname)@en[JOINER]],
[CODE(charname)@en[NON-JOINER]]
を割り当てています。
これらは [[Unicode]] では
[CODE(charname)@en[ZWJ]],
[CODE(charname)@en[ZWNJ]]
に対応付けられていて、
[[制御文字]] ([[Cc]]) ではない扱いになっています。
[REFS[
- [24] [CITE@en-us[Character Sets: Extended Latin (ANSEL)]], [TIME[2022-05-09T00:41:07.000Z]] <https://memory.loc.gov/diglib/codetables/45.html>
]REFS]
* 関連
[22] 他に[[C0集合]]があります。
[30] [[[CODE(charname)@en[ESC]] [CODE[eKanji]]]]
* メモ