/
75.txt
152 lines (122 loc) · 8.26 KB
/
75.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
* 0F型エスケープシーケンス
[1] [DFN@en[[CODE[0F]]]] 型[[エスケープ・シーケンス]]は、
[[告知]] ([CODE(charname)@en[[[ANNOUNCE CODE STRUCTURE]]]])
に使われます。
[2]
仕様書:
- [[JIS X 0202]]:1998
--[CSECTION[表 3.b nF 型エスケープ・シーケンス及び対応機能]]
[3] '''構文''':
- [CODE(ABNF)[[DFN[エスケープ・シーケンス]] /= 0F 型エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN[0F 型エスケープ・シーケンス]] := ACS / 0F 型予約エスケープ・シーケンス]]
- [CODE(ABNF)[[DFN@en[ACS]] := 標準 ACS / 私用 ACS [CODE(comment)[;; [CODE(charname)@en[[[ANNOUNCE CODE STRUCTURE]]]]]]]]
- [CODE(ABNF)[[DFN[標準 ACS]] := [CODE(charname)@en[[[ESC]]]] %x20 [[Ft]]]]
- [CODE(ABNF)[[DFN[私用 ACS]] := [CODE(charname)@en[[[ESC]]]] %x20 *[[I]] [[Fp]]]]
- [CODE(ABNF)[[DFN[0F 型予約エスケープ・シーケンス]] := [CODE(charname)@en[[[ESC]]]] %x20 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)[;; 標準終端バイト]]]]
* 告知 (ISO/IEC 2022)
[4] [[告知]] = [[符号構造機能の告知]]
:[[名前]]:[CODE(charname)@en[[[ANNOUNCE CODE STRUCTURE]]]]
:[[日本語通用名称]]:[CODE(jcharname)[[[符号構造アナウンス]]]]
:[[略号]]:[CODE(charname)@en[[[ACS]]]]
:[[符号化表現]]:[CODE(char)@en[[CODE(charname)@en[[[ESC]]]] 02/00 [VAR[[[F]]]]]]
[5] ISO/IEC 2022 の announce(r) を、 [[JIS X 0202]]:1998 はそのまま
[Q[アナウンス (アナウンサー)]]としているが、ここでは[Q[告知]]と訳す。
- [6] [[ISO/IEC 2022]]:1994 15.2
- [8] [CITE[ECMA-35_6th_edition_december_1994.pdf]], [TIME[2021-01-16T09:57:02.000Z]], [TIME[2022-04-29T07:11:12.638Z]] <https://www.ecma-international.org/wp-content/uploads/ECMA-35_6th_edition_december_1994.pdf#page=47>
- [9] [[JIS X 0202]]:1998
-- [10] [CSECTION[15.2 符号構造機能のアナウンス]]
[11] 構文 [SRC[>>6]]
- [CODE(ABNF)[[DFN[ACS]] := [CODE(char)[[[ESC]] %x20 [VAR[F]] ;; [[ANNOUNCE CODE STRUCTURE]]]]
- [CODE(ABNF)[[DFN[[VAR[F]]]] := %x41-7E ;; 1 = [CODE(char)[4/1]], ..., 62 = [CODE(char)[7/14]]]]
,構造番号,[VAR[F]],使用する符号要素 ,シフト機能
,1 ,04/01,[[GL]] == [[G0]] ,なし
,2 ,04/02,"GL = G0, [[G1]] ","[CODE(char)[[[SI]]]]/[CODE(char)[[[LS0]]]], [CODE(char)[[[SO]]]]/[CODE(char)[[[LS1]]]]"
,3 ,04/03,"(8ビット) GL == G0, [[GR]] == G1",なし
,4 ,04/04,"(7ビット) 2と同じ / (8ビット) 3と同じ",==
,5 ,04/05,,7ビット・8ビット間変換で完全に保持
,6 ,04/06,[[C1]] == [CODE(char)[[[[[ESC]] [VAR[[[Fe]]]]]]]],[CODE(char)[ESC [VAR[Fe]]]]
,7 ,04/07,(7ビット) C1 == [CODE(char)[ESC Fe]] / (8ビット) C1 == [[CR]],
,8 ,04/08,[[図形文字集合]]は全て[[94集合]],
,9 ,04/09,G1〜[[G3]] は94集合または[[96集合]],
,10 ,04/10,7ビット,
,11 ,04/11,8ビット,
,12 ,04/12,[[ISO/IEC 4873]] [[実装水準]]1
,13 ,04/13,ISO/IEC 4873 実装水準2
,14 ,04/14,ISO/IEC 4873 実装水準3
,16 ,05/00,+G0 ,[CODE(char)[SI]]/[CODE(char)[LS0]]
,18 ,05/02,+G1 ,[CODE(char)[SO]]/[CODE(char)[LS1]]
,19 ,05/03,+G1 ,[CODE(char)[SO]]/[CODE(char)[[[LS1R]]]]
,20 ,05/04,+G2 ,[CODE(char)[[[LS2]]]]
,21 ,05/05,+G2 ,[CODE(char)[LS2]]/[CODE(char)[[[LS2R]]]]
,22 ,05/06,+G3 ,[CODE(char)[[[LS3]]]]
,23 ,05/07,+G3 ,[CODE(char)[LS3]]/[CODE(char)[[[LS3R]]]]
,26 ,05/10,+G2 ,[CODE(char)[[[SS2]]]]
,27 ,05/11,+G3 ,[CODE(char)[[[SS3]]]]
,28 ,05/12,[CODE(char)[[[SS2]]]]/[CODE(char)[[[SS3]]]] の後 [[GR]] を使用,
1,3,4と16,18〜23は併用不能, 12〜14は他と併用不能
[12]
[DFN[符号識別機能]]は、[[情報交換]]の開始時に[[文字符号化情報]]に埋込んで、
後続のデータで使用される[[符号構造機能]]を[RUBY[[[告知]]] @en[[[アナウンス]]]]します。
[SRC[>>10 15.1]]
[13]
'''終端バイト''':
[[終端バイト]] [CODE(char)@en[[VAR[F]]]] は
1〜62 の番号が付けられており、 1 が
[CODE(char)[04/01]] に、 62 が [CODE(char)[07/14]]
によって[[表現]]されます。各番号の意味は [[ISO/IEC 2022]]
で規定されており、将来追加の機能が必要になったときは
[[ISO/IEC 2022]] が改訂されることが示唆されています。
登録制度はありません。
[SRC[>>10 15.2.2]]
[14]
'''複数の組合せ''':
告知機能は複数回続けて使用できます
[SRC[[[JIS X 0202]]:1998 15.1]]。
しかし、幾つかの機能は同時に使用できないと規定されています
[SRC[>>10 15.2.2]]。
[15]
,機能番号,終端バイト,機能 (7ビット),機能 (8ビット),同時使用禁止
,1,[CODE(char)[04/01]],"[[G0]] = [[GL]], ×[[固定シフト]]","[[G0]] = [[GL]], ×[[固定シフト]], ×[[GR]]","12, 13, 14, 16, 18〜23"
,2,[CODE(char)[04/02]],"[[G0]], [[G1]], [CODE(charname)@en[[[SI]]]], [CODE(charname)@en[[[SO]]]] >>8","[[G0]], [[G1]], [CODE(charname)@en[[[LS0]]]], [CODE(charname)@en[[[LS1R]]]] >>7","12, 13, 14"
,3,[CODE(char)[04/03]],"×[[G0]], ×[[G1]], ×[[固定シフト]]","[[G0]] = [[GL]], [[G1]] = [[GR]], ×[[固定シフト]]","12, 13, 14, 16, 18〜23"
,4,[CODE(char)[04/04]],"[[G0]], [[G1]], [CODE(charname)@en[[[SI]]]], [CODE(charname)@en[[[SO]]]] >>8","[[G0]] = [[GL]], [[G1]] = [[GR]], ×[[固定シフト]]","12, 13, 14, 16, 18〜23"
,5,[CODE(char)[04/05]],"7ビット・8ビットデータ変換。すべての[[シフト機能]]を維持。",==,"12, 13, 14"
,6,[CODE(char)[04/06]],"[[C1]] = [CODE(char)@en[[CODE(charname)@en[[[ESC]]]] [[Fe]]]]",==,"12, 13, 14"
,7,[CODE(char)[04/07]],"[[C1]] = [CODE(char)@en[[CODE(charname)@en[[[ESC]]]] [[Fe]]]]","[[C1]] = [[CR]]","12, 13, 14"
,8,[CODE(char)[04/08]],"[[図形文字集合]]は94文字",==,"12, 13, 14"
,9,[CODE(char)[04/09]],"[[図形文字集合]]は94文字[[及び/又は]]96文字",==,"12, 13, 14"
,10,[CODE(char)[04/10]],"[[7ビット符号]]だけを使用",==,"12, 13, 14"
,11,[CODE(char)[04/11]],,"[[8ビット符号]]を使用","12, 13, 14"
,12,[CODE(char)[04/12]],"[[ISO/IEC 4873]] 実装水準1",==,"13, 14"
,13,[CODE(char)[04/13]],"[[ISO/IEC 4873]] 実装水準2",==,"12, 14"
,14,[CODE(char)[04/14]],"[[ISO/IEC 4873]] 実装水準3",==,"12, 13"
,15,[CODE(char)[04/15]],(予約),==,"12, 13, 14"
,16,[CODE(char)[05/00]],"[[G0]], [CODE(charname)@en[[[SI]]]]","[[G0]], [CODE(charname)@en[[[LS0]]]]","1, 3, 4, 12, 13, 14"
,17,[CODE(char)[05/01]],(予約),==,"12, 13, 14"
,18,[CODE(char)[05/02]],"[[G1]], [CODE(charname)@en[[[SO]]]]","[[G1]], [CODE(charname)@en[[[LS1]]]]","1, 3, 4, 12, 13, 14"
,19,[CODE(char)[05/03]],"[[G1]], [CODE(charname)@en[[[SO]]]]","[[G1]], [CODE(charname)@en[[[LS1R]]]]","1, 3, 4, 12, 13, 14"
,20,[CODE(char)[05/04]],"[[G2]], [CODE(charname)@en[[[LS2]]]]","[[G2]], [CODE(charname)@en[[[LS2]]]]","1, 3, 4, 12, 13, 14"
,21,[CODE(char)[05/05]],"[[G2]], [CODE(charname)@en[[[LS2]]]]","[[G2]], [CODE(charname)@en[[[LS2R]]]]","1, 3, 4, 12, 13, 14"
,22,[CODE(char)[05/06]],"[[G3]], [CODE(charname)@en[[[LS3]]]]","[[G3]], [CODE(charname)@en[[[LS3]]]]","1, 3, 4, 12, 13, 14"
,23,[CODE(char)[05/07]],"[[G3]], [CODE(charname)@en[[[LS3]]]]","[[G3]], [CODE(charname)@en[[[LS3R]]]]","1, 3, 4, 12, 13, 14"
,24,[CODE(char)[05/08]],(予約),==,"12, 13, 14"
,25,[CODE(char)[05/09]],(予約),==,"12, 13, 14"
,26,[CODE(char)[05/10]],"[[G2]], [CODE(charname)@en[[[SS2]]]]",==,"12, 13, 14"
,27,[CODE(char)[05/11]],"[[G3]], [CODE(charname)@en[[[SS3]]]]",==,"12, 13, 14"
,28,[CODE(char)[05/11]],,[[単独シフト領域]]は [[GR]],
,29〜62,[CODE(char)[05/12]]〜[CODE(char)[07/14]],(予約),==,"12, 13, 14"
[16]
2番は [[JIS X 0202]]:1998 で
[Q[[CODE(charname)@en[[[LS1]]]] が [[G1]] を [[GR]] に呼び出す]]
と書かれており、図も [CODE(charname)@en[[[LS1]]]]
になっていますが、[[右]]に[[呼出]]す
[WEAK[(図もそうなっています。)]] なら
[CODE(charname)@en[[[LS1R]]]] だと思われます。
[7]
2番と4番は[[7ビット符号]]では同じですが、
変換前の[[8ビット符号]]の構造の情報を保存するために用意されています。
[SRC[>>10 15.2.2]]
* メモ