-
Notifications
You must be signed in to change notification settings - Fork 4
/
773.txt
230 lines (165 loc) · 7.22 KB
/
773.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
[2] [DFN[Unicode [RUBYB[用字系特性値]@en[Script Property Value]]]]は、[[Unicode]] における[[用字系]]を表す[[識別子]]です。
* 仕様書
[REFS[
- [1] [CITE@en-us[UAX #24: Unicode Script Property]] ([TIME[2013-09-27 22:15:13 +09:00]] 版) <http://www.unicode.org/reports/tr24/#Values>
- [26] [CITE@en-us[UAX #24: Unicode Script Property]], [TIME[2022-08-25T17:19:20.000Z]], [TIME[2022-11-12T09:03:25.601Z]] <https://www.unicode.org/reports/tr24/#Classification_by_Script>
- [14] [CITE@en-us[UAX #24: Unicode Script Property]], [TIME[2022-08-25T17:19:20.000Z]], [TIME[2022-11-12T08:44:05.701Z]] <https://www.unicode.org/reports/tr24/#Script>
-- [28]
[CITE@en-us[UAX #24: Unicode Script Property]], [TIME[2022-08-25T17:19:20.000Z]], [TIME[2022-11-12T09:13:04.920Z]] <https://www.unicode.org/reports/tr24/#Relation_To_ISO15924>
]REFS]
* 値
[11]
[CODE[Arabic]]
や
[CODE[Nyiakeng_Puachue_Hmong]]
のような値が各[[用字系]]に割り当てられています。
[[Unicode]]
に新規[[用字系]]が追加されるたびに値も割当られます
[SRC[>>14]]。
[36]
[[点字]]は他の[[用字系]]と同じレベルの[[用字系]]とは言えないものではありますが、
1つの[[用字系]]として扱われています。
[SRC[>>14]]
[13]
[[別名]]として4文字の短縮形等も付与されています。
[SEE[ [[特性 (UCD)]] ]]
[15]
具体的な[[用字系]]を表す値は[DFN[[RUBYB[明示][explicit]]値]]と呼ばれます。
[SRC[>>14]]
[16]
特別な意味を表す[DFN[[RUBYB[暗示][implicit]]値]]が3つあります ([CODE[Inherited]],
[CODE[Common]],
[CODE[Unknown]])。
[SRC[>>14]]
** [CODE[Inherited]]
[17]
[DFN[[CODE[Inherited]]]]
は、
複数の[[用字系]]で使われる[[文字]]で、
前の[[基底文字]]の[[用字系]]を[RUBYB[継承][inherit]]するものです。
[SRC[>>14]]
[18]
例えば
[[nonspacing combining mark]],
[[enclosing combining mark]],
[CODE(charname)@en[ZWNJ]],
[CODE(charname)@en[ZWJ]]
が該当します。
[SRC[>>14]]
;; [35] それらのすべてが [CODE[Inherited]] と決められているわけではないようです。
[SEE[ [[Script (UCD)]] ]]
[38] 「複数」は [VAR[n]] = 1 のこともあるようです。
[21]
[[用字系符号]]では
[CODE[Qaai]],
[CODE[Zinh]]
に相当します。
** [CODE[Common]]
[19]
[DFN[[CODE[Common]]]]
はその他 ([CODE[Inherited]] 以外) の複数の[[用字系]]で用いられる[[文字]]です。
[SRC[>>14]]
[22]
[[用字系符号]]では [CODE[Zyyy]] に相当します。
[24]
[[Unicode]] では[[句読点]]等の[[記号]]の多くが特定の[[用字系]]に属さないで共用とされていて、
[CODE[Script]] が [CODE[Common]] になっています。
[39] 「複数」は [VAR[n]] = 1 のこともあるようです。
[25]
[[Unicode]] では[[用字系]]はフラットで排他的なので、
1つの[[用字系]]に確定できないものは複数に属すると判定されているようです。
[SEE[ [[Script (UCD)]] ]]
例えば「ー」 ([[長音記号]]) は[[平仮名]]でも[[片仮名]]でもあって、
どちらかだけに属させることができないので、
[CODE[Common]]
となっています。
[40]
[[丸付き文字]]なども [CODE[Common]] になっていることがあります。
[SEE[ [[Script (UCD)]] ]]
** [CODE[Unknown]]
[20]
[DFN[[CODE[Unknown]]]]
は[[未割当符号点]],
[[私用符号点]],
[[非文字符号点]],
[[サロゲート符号点]]です。
[SRC[>>14]]
[27]
[[書誌]]に[[用字系]]を記述するとき、
[[用字系]]を判定できないことを表すために使えます。
[SRC[>>26]]
[23]
[[用字系符号]]では [CODE[Zzzz]] に相当します。
* 文脈
[9]
[[UCD]]
の
[CODE[Script][Script (UCD)]]
や
[CODE[Script_Extensions]]
の値で使われます。
[12]
[[UCD]] の special tag [CODE[<script>]] で使われます。
[6] [[XForms]] の [CODE(XMLa)@en[[[inputmode]]]] [[属性]]の値の一部として用いられています。ただし
[CODE(XMLa)@en[[[inputmode]]]] [[属性]]ではいくつか追加の値が用意されています。
[SEE[ [[用字系字句]] ]]
[REFS[
- [7] [CITE@EN[XForms 1.1]] ([TIME[2010-08-12 22:45:33 +09:00]] 版) <http://www.w3.org/TR/xforms/#mode-scripts>
]REFS]
* 処理
[41]
[[Unicode]] ではすべての[[符号点]]に [CODE[Script]] で1つ、
[CODE[Script_Extensions]] で1つ[[以上]]の[[用字系]]が割り当てられており、
[[UCD]] で提供されています。
[[UAX #24]] ではその処理方法は特に規定がありませんが、
[[文字列]]に対する各種処理で活用することが想定されています。
[FIG(short list)[ [42] [[文字]]の[[用字系]]を使った処理
- [[パターンマッチ]]
-- [CODE[\p]]
- [[連なり]]の検出
- [[spoofing]] 防止処置
- [[文字のレンダリング]]の方法決定
]FIG]
** 暗示値の解決
* 関連
[3] [[ISO 15924]] も同様な[[用字系符号]]を定義しています。ただし [[Unicode]] と [[ISO 15924]]
では[[用字系]]の粒度が異なっているため、必ずしも一対一対応していません。
[5] [[ISO 15924]] の登録簿 (>>4) には、両者の対応関係も記載されています。
[29]
[[Unicode]] は、対応関係にある [[ISO 15924]] 符号を出来るだけ別名に設定している
[SRC[>>28]] と説明しています。
[31]
[[ISO 15924]]
で[[私用]]に当たる [CODE[Q]] から始まる[[符号]]の一部を
[[Unicode]]
側の値でも使っています。
将来変更の際も[[後方互換性]]のため[[別名]]として残すとされています。
[SRC[>>28]]
[32]
実際に [CODE[Inherited]] の旧[[別名]] [CODE[Qaai]] は、
新たな[[別名]] [CODE[Zinh]] が追加されましたが、そのまま残されています。
[SRC[>>28]]
他に [CODE[Qaac]] の例があります。
現在定義されているのはその2例だけです。
[30]
なお
[[ISO 15924]] の [[RA]] は [[Unicode Consortium]] が受託しており、
[[ISO 15924]] の符号の登録と [[Unicode]] の値の追加は協調して行われているようです。
;; [33] 従って今後 [CODE[Q]] から始まる符号を使う必要も生じないのかもしれませんが。
;; [34] なお [CODE[Q]] から始まると[[私用]]とするのは
[[ISO 15924]]
の仕様です。
[[Unicode用字系特性値]]には[[私用]]の規定はありません。
[REFS[
- [4] [CITE@en-gb[[[ISO 15924]] - Code Lists]] ([TIME[2012-08-31 00:42:44 +09:00]] 版) <http://www.unicode.org/iso15924/codelists.html>
]REFS]
-*-*-
[37]
[[文字の名前]]の先頭には[[用字系]]が付されていることが多いです。
[[文字の名前]]と[[用字系]]の長い名前は対応関係が保たれる形で決められています。
[SRC[>>11]]
[8] [[用字系]]の名前は[[ブロック名]]と似ていることが多いですが、両者は異なります。
[[文字]]が割り当てられている[[ブロック]]と[[用字系]]の関係も絶対的なものではありません。
[10]
他の符号体系は[[用字系]]を参照。
* メモ