-
Notifications
You must be signed in to change notification settings - Fork 4
/
418.txt
580 lines (484 loc) · 22.3 KB
/
418.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
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
[7] [DFN[[[Unicode Character Database]]]] は、 [[Unicode]] の[[文字]]に関するデータを集めた[[データベース]]です。
[[Unicode]] の仕様の一部を構成する[[規定]]のデータと、それ以外の[[参考]]のデータが共に含まれています。
[[UCD]] は [[Unicode Consortium]] により管理、配布されていて、 [[Unicode]] 本体と連動して改訂されています。
[8] 現代の[[言語]]や[[プロトコル]]の多くは、利用可能な[[文字]]の定義や[[正規化]]・[[照合順序]]などの[[アルゴリズム]]で利用するデータとして、
直接的または間接的に [[UCD]] のデータを参照しています。最近の多くの [[OS]] や[[プログラミング言語]]の実行環境には
[[UCD]] やそこから派生したデータが含まれています。
* 仕様書
[REFS[
-[4] [CITE@en-us[UAX #44: Unicode Character Database]]
( ([TIME[2013-09-27 22:15:15 +09:00]] 版))
<https://www.unicode.org/reports/tr44/>
-- [22] <https://www.unicode.org/reports/tr44/#Simple_Derived>
-- [30] <https://www.unicode.org/reports/tr44/#Release_Stability>
-- [40] <https://www.unicode.org/reports/tr44/#Data_File_Comments>
-- [41] <https://www.unicode.org/reports/tr44/#Obsolete>
-- [44] <https://www.unicode.org/reports/tr44/#UCD_Files>
--- [45] <https://www.unicode.org/reports/tr44/#Format_Conventions>
--- [75] <https://www.unicode.org/reports/tr44/#Default_Values_Table>
--- [76] <https://www.unicode.org/reports/tr44/#Complex_Default_Values>
-- [82] <https://www.unicode.org/reports/tr44/#File_List>
-- [84] <https://www.unicode.org/reports/tr44/#About_Property_Table>
-- [73] <https://www.unicode.org/reports/tr44/#Property_And_Value_Aliases>
-- [98] <https://www.unicode.org/reports/tr44/#Matching_Rules>
-- [100] <https://www.unicode.org/reports/tr44/#Property_Invariants>
-[5] [CITE@en-us[Unicode Character Database]]
( ([TIME[2013-06-04 18:08:12 +09:00]] 版))
<http://www.unicode.org/ucd/>
-[6] [CITE[Index of /Public/UCD/latest/ucd]]
( ([TIME[2013-10-30 14:15:11 +09:00]] 版))
<http://www.unicode.org/Public/UCD/latest/ucd/>
]REFS]
* ファイル
[9] [[UCD]] のデータは[[テキストファイル]]として提供されています。その書式はファイルにより異なり、
[[UAX #44]]
[SRC[>>4]]
で説明されています。
[FIG(list middle)[
[FIGCAPTION[
[10] [[UCD]] の主なファイル
]FIGCAPTION]
- [[UnicodeData.txt]]
- [CODE[NamesList.txt]]
- [CODE[NamesList.html]]
- [[CaseFolding.txt]]
- [[PropList.txt]]
- [CODE[PropertyAliases.txt]]
- [CODE[CompositionExclusions.txt]]
- [CODE[DerivedBinaryProperties.txt]]
- [CODE[BidiMirroring.txt]]
- [CODE[BidiBrackets.txt]]
- [CODE[StandardizedVariants.txt]]
- [CODE[StandardizedVariants.html]]
- [CODE[Jamo.txt]]
- [CODE[DerivedAge.txt]]
- [CODE[DerivedDecompositionType.txt]]
- [CODE[ArabicShaping.txt]]
- [CODE[DerivedJoiningGroup.txt]]
- [CODE[DerivedJoiningType.txt]]
]FIG]
[83]
これらの[[ファイル]]の多くは[[文字]]の[[特性]]を記述したものですが、
それ以外のものもあります。
[[特性]]以外の各[[ファイル]]は[[規定]]
([DFN[N]], [DFN[Normative]]),
[[参考]]
([DFN[I]], [DFN[Informative]]),
予備的
([DFN[P]], [DFN[Provisional]])
に分類されています
[SRC[>>82]]。
[[特性]]にもそれぞれの状態が定められています (>>85)。
もっともこの分類は[[仕様書]]としての形式的なもので、
実用上気にする場面はありません。
[46]
比較的古いファイルは独特の形式で、
比較的新しいファイルはできるだけ共通の形式を採用しているようです。
[[ファイル]]と[[特性]]の関係に規則性はなく、
個別に調べていくしかありません。
1つの[[ファイル]]で複数の[[特性]]が定義されていることがあります。
[47]
多くのファイルは次のような構造をしています。
[SRC[>>45]]
- [48] [[UTF-8]] です。
- [49] [CODE(charname)@en[LF]] 区切りの[[行]]指向のファイルです。
- [50] [CODE[#]] から行末までは[[コメント]]です。
[[構文解析]]時にまず除去します。
- [51] 各[[行]]は、 [CODE[;]] で区切られた[RUBYB[欄][field]]で構成されます。
[[0起算]]で数えます。
- [54] 欄の先頭と末尾の[[空白]]は、意味を持ちません。除去して解釈します。
(ただし、古めのファイルには例外あり。)
- [67] 欄の値は、
複数の値の[[間隔]]区切りのリストとなっていることがあります。
値の順序に意味があることも、ないこともあります。
- [81] 欄の値が空になることがあります。
意味はファイルにより異なります。
- [52] 第0欄は[[符号位置]]またはその範囲を表します。
- [53] 第1欄は第0欄の[[符号位置]]についての情報を表します。
- [70] 特性値が[RUBYB[[[既定値]]][property]]と同じとき、その[[符号位置]]の記述は省略できます。
[65] [[コメント]]には、
行頭に [CODE[#]] があって[[欄]]がないものもあります。
ファイルの先頭にはファイル情報が書かれています。
[[派生特性]]はその導出方法が書かれています (>>28)。
[[既定値]]についての説明が書かれていることもあります
(>>73, >>74)。
[CODE[@missing]]
は[[構文解析]]して使えることになっています。
[66]
[[欄]]の後に[[コメント]]が続くこともあります。
一定の書式で参考になる情報が書かれている場合もあります [SRC[>>45]]。
しかしあくまで参考であって、
変更されることもあり得るので、
[[構文解析]]して使う[RUBYB[べき][should]]ではありません [SRC[>>45]]。
* 特性
[11] [[Unicode Standard]] および [[Unicode Character Database]] では、[[文字]]に関するデータを[[文字]] ([[符号位置]])
の[DFN[[RUBYB[[[特性]]]@en[property]]]]と呼んでいます。
[21]
[[特性]]にはそれぞれ [CODE@en[[[General_Category]]]]
や [CODE@en[Age][Age (Unicode)]] のような名前がついています。
[[特性]]の名前は最低1つありますが、
別名が定義されているものもあります [SRC[>>73]]。
[DFN[[CODE[PropertyAliases.txt]]]] には、
[[特性]]の別名に関する情報が収録されています [SRC[>>1, >>73]]。
[[一致]]には別名も考慮する[RUBYB[べき][should]]です
[SRC[>>98]]。
更に緩い[[一致]]の規則があります [SRC[>>98]]。
[EG[
[2] 例えば [CODE[Bidi_Mirroring_Glyph]] には
[CODE[bmg]] という略称があり、
関連する文書で使われることがある他、
別名リストにも掲載されています [SRC[>>1]]。
]EG]
[12] [[文字]]と[[特性]]のデータは >>9 の各ファイルに含まれています。どのように記述されているかはそれぞれの[[特性]]により異なり、
[[UAX #44]]
[SRC[>>4]]
などに説明があります。
[FIG(short list)[ [19] [[UCD]] の[[特性]]
- [CODE[Age][Age (Unicode)]]
- [CODE[Bidi_Class]]
- [CODE[Bidi_Mirrored]]
- [CODE[General_Category]]
- [CODE[Deprecated]]
- [CODE[Soft_Dotted]]
- [CODE[Quick_Check]]
- [CODE[Decomposition_Type]]
- [CODE[Grapheme_Base]]
- [CODE[Grapheme_Extend]]
- [CODE[Joining_Type]]
]FIG]
[85]
[[特性]]は[[規定]]
([DFN[N]], [DFN[Normative]]),
[[参考]]
([DFN[I]], [DFN[Informative]]),
[DFN[Contributory]]
([DFN[C]]),
予備的
([DFN[P]], [DFN[Provisional]])
に分類されています
[SRC[>>84]]。
もっとも実用上はこの違いは然程重要ではありません。
[86]
[[特性]]は[[単純特性]]と[[派生特性]]に分けられます。
-[23]
[DFN[[RUBYB[単純特性][simple property]]]]は、
他の[[特性]]から計算できない[[特性]]です [SRC[>>22]]。
-
[24]
[DFN[[RUBYB[派生特性][derived property]]]]は、
他の[[特性]]から一定の規則で導出される[[特性]]です [SRC[>>22]]。
[26]
[[単純特性]]と[[派生特性]]の違いは、
その[[特性]]が[[規定]]であるか[[参考]]であるかとは無関係です。
[[特性]]の重要度とも関係しません。
[25]
[DFN[contributory properties]]
は、
[[単純特性]]のうち、
[[派生特性]]の規則の記述を簡潔にしたり一般化したりするために敢えて設けられたものです。
例外リストの記述の便法として使ったり、
重要な[[派生特性]]の安定性の保証に関係して使ったりされます。
[SRC[>>22]]
[28]
[[派生特性]]の導出方法は、
[[UCD]]
の各ファイルに注釈として説明がありますが、
改訂されることがあります [SRC[>>22]]。
注釈の説明は[[参考]]です [SRC[>>40]]。
導出方法と示された特性値が矛盾する場合、
示された特性値の方が[[規定]]と解釈される[RUBYB[べき][should]]です [SRC[>>22]]。
実装は、誤りを防ぐため、[[単純特性]]から[[派生特性]]を導出するのではなく、
直接[[派生特性]]を使う[RUBYB[べき][should]]です [SRC[>>22]]。
;; [27] つまり[[単純特性]]と[[派生特性]]の違いは、
仕様 ([[Unicode]] 自体や、それを使う[[プロトコル]])
を検討する人達には意味があっても、
[[Unicode]]
を実装する人達や、
[[Unicode]]
を実装した[[プログラム]]や
[[Unicode]]
を使った[[プロトコル]]を使う人達には重要ではありません。
[HISTORY[
[29]
[[Unicode 10.0]] から
[[Unicode 12.1]]
まで、
[[segmentation]]
関係の特性が外部
([[UCD]] 以外)
の仕様の特定の版に依存する形で定義されていました。
[[UAX #14]], [[UAX #29]], [[UTS #51]]
で説明されていました。
[[Unicode 13.0]]
から
[[UCD]]
だけで完結するように改められました。
[SRC[>>22]]
]HISTORY]
[37]
[[特性]]とその利用法については、
[CITE[Unicode Standard]] 本体、
[[UCD]] の [[UAX #44]]、
[[UCD]] の各ファイル、
参照している各 [[UAX]]/[[UTS]]
に分散して記述されています。
あちこちに情報が少しずつあって、
しかも相互の[[リンク]]が不十分なので、
苦労することも多いです。
[REFS[
- [1] ([TIME[2015-02-19 03:10:35 +09:00]] 版) <http://www.unicode.org/Public/UCD/latest/ucd/PropertyAliases.txt>
]REFS]
* 特性値
[68] 第0欄には[[符号位置]]またはその範囲が指定されます。
また特性の値に[[符号位置]]が指定されることがあります。
次のように記述されます [SRC[>>45]]。
- [55] [[符号位置]]は、4桁から6桁の[[16進数]]列で表します。
([CODE[U+]] はつけません。)
- [56] [[符号位置]]の[[列][文字列]]は、
[[符号位置]]の[[間隔]]区切りで表します。
- [57] [[符号位置]]の範囲は、先頭と末尾の[[符号位置]]を
[CODE[..]] で連結して表します。
[87]
[[特性]]は値により次のように分類されています。
[SRC[>>84]]
- [88] [DFN[[RUBYB[カタログ][Catalog]]]] ([DFN[C]]) 特性は、
列挙値のいずれかを取る特性です。
列挙値は
[[Unicode]]
の改訂で順次追加されていくことが予期されています。
-- [69] ファイルで省略されていたときの[[既定値]]は、
ファイルの[[コメント]]で説明されます。
[SRC[>>45]]
- [89] [DFN[[RUBYB[列挙][Enumeration]]]] ([DFN[E]]) 特性は、
列挙値のいずれかを取る特性です。
通常は新しい値が追加されることはありません。
-- [96] ファイルで省略されていたときの[[既定値]]は、
ファイルの[[コメント]]で説明されます。
[SRC[>>45]]
- [90] [DFN[[RUBYB[バイナリー][Binary]]]] ([DFN[B]]) 特性は、
[[真]] ([DFN[Y]], [DFN[Yes]], [DFN[True]]) と[[偽]] ([DFN[N]], [DFN[No]], [DFN[False]])
の2値の特殊な[[列挙]]特性です。
-- [71]
ファイルでは[[真]]を表すために[[特性]]名を書きます [SRC[>>45]]。
-- [95]
ファイルで省略されていたときの[[既定値]]は、[[偽]]です。
ファイルでは[[偽]]を記述せず、必ず省略します。
(ただし [CODE[Extended_Pictographic]] は例外です。) [SRC[>>45]]
- [91] [DFN[[RUBYB[文字列][String]]]] ([DFN[S]]) 特性は、
通常は
[[Unicode]] [[符号位置]]から他の[[符号位置]]またはその[[列][文字列]]への[[写像]]です。
-- [94] ファイルで省略されていたときの[[既定値]]は、
その[[符号位置]]自身です [SRC[>>45]]。
- [92] [DFN[[RUBYB[数値][Numeric]]]] ([DFN[N]]) 特性は、
[[数字]]関連の[[文字]]に[[数値]]を指定する特性です。
-- [99]
[[数値]]としての[[一致]]や[[循環小数]]としての解釈の規定があります
[SRC[>>98]]。
- [93] [DFN[[RUBYB[その他][Miscellaneous]]]] ([DFN[M]]) 特性は、
他の種類に収まらない特性です。
[35]
列挙特性の特性値の中には、どの[[符号位置]]でも使用されていないものが含まれる場合もあります。
過去の版で使用されていたものが、
使用されなくなったことがあります。
[SRC[>>30]]
[72] [RUBYB[その他][miscellaneous]]特性で値が[[文字列]]となるものでは、
ファイルで省略されていたときの[[既定値]]は
[[null]] [[文字列]]です。
[SRC[>>45]]
[74] [[既定値]]は[[ファイル]]の[[コメント]]の
[CODE[@missing]]
行に[[機械可読]]に書かれることがあります。 [SRC[>>45]]
いくつかの[[特性]]の[[既定値]]は例外的なものや複雑な方法で決定されるもので、
個別に説明があります
[SRC[>>75, >>76]]。
[77]
[[既定値]]を表す
[DFN[[CODE[@missing]]]]
は、
[PRE(code)[
# @missing: 0000..10FFFF; <none>
]PRE]
... のように、 [CODE[# [[@missing]]:]]
の後に[[欄]]が続きます。
第0欄が適用対象の[[符号位置]] (の範囲)、
第1欄が特性値を表します。
[SRC[>>45]]
[78]
ただし、一部のファイルには複数の[[特性]]が書かれているため、
第1欄が[[特性]]名、
第2欄が特性値を表します。
[SRC[>>45]]
[79]
値には、
special tag
が使われることがあります。
[DFN[[CODE[<node>]]]]
は[[空文字列]]、
[DFN[[CODE[<code point>]]]]
は[[符号位置]]の値の[[文字列]]表現、
[DFN[[CODE[<script>]]]]
は[[符号位置]]の
[CODE[Script]]
特性値を表します。
[SRC[>>45]]
[97]
値には、
別名が定義されていることもあります [SRC[>>73]]。
各仕様書などで使われることがあります。
[[一致]]には別名を考慮する[RUBYB[べき][should]]です
[SRC[>>98]]。
更に緩い[[一致]]の規則があります [SRC[>>98]]。
* 私用文字
[102]
[[私用文字]]の[[特性値]]については、
一部の例外を除き、
[[私的な同意]]に基づく変更が認められます。
[SEE[ [[私用文字]] ]]
* Unicode の版
[13] [[UCD]] は [[Unicode]] が改版される度に併せて改訂されています。特に小改訂は [[UCD]]
の更新が主目的であることもあります。
[14] [[Unicode]] の版によって値が変化する(可能性のある)[[特性]]もあれば、
不変であることが保証されている[[特性]]もあります。[[特性]]自体も改版により増えたり、減ったりしています。
[15] >>8 の通り、多くの言語やプロトコルには何らかの形で [[UCD]] のデータや [[Unicode]]
の[[演算]]の実装が含まれています。それぞれが対応している [[Unicode]] の版に違いがあると、
正しくない結果が得られる可能性もあります。
[31]
[[UCD]]
のある特定の版は、
[RUBYB[[[安定]]][stable]]であって、出版後変更されることがありません [SRC[>>30]]。
誤りは Errata で公表され、必要に応じて次の版で修正されます [SRC[>>30]]。
しかしその特定の版のファイル自体は変更されません。
[32]
[[UCD]]
は、
[[Unicode]]
の
[[Webサイト]]で版ごとに公開されています。
この [[URL]]
は[[安定]]で、
恒久的に提供されるとされています。 [SRC[>>30]]
[[UCD]]
の各ファイルは
[[Webサイト]]から誰でも無償で入手可能です。
[42]
版が指定されない、最新版の
[[UCD]]
にアクセスできる
[[URL]]
もあります
[SRC[>>6]]。
[[UCD]]
を使った[[プログラム]]のための元データとして取得するときは、
この
[[URL]]
を使うのが便利です。
[33]
(版をまたいだ) [[特性]]の[[安定性]]は、
[CITE[Unicode Consortium Stability Policies]]
にまとめられています。 [SRC[>>30]]
[[UAX #44]]
で変更しないと定められているものもあります [SRC[>>100]]。
一度決めた値が変更されることはない[[特性]]もあれば、
変更される可能性があるものもあります。
[EG[
[34]
[CODE[U+200B]]
[CODE(charname)@en[ZERO WIDTH SPACE]]
の
[CODE[General_Category]]
は、
[CODE[Zs]]
から
[CODE[Cf]]
に改正されました。
[SRC[>>30]]
]EG]
[36]
[[特性]]は、
[RUBYB[[[廃止]]][obsolete]]されることがあります [SRC[>>30]]。
廃止特性は、
重ねて[RUBYB[[[非推奨]]][deprecated]]や[RUBYB[[[安定化]]][stabilized]]されることがあります
[SRC[>>30]]。
状況の変化によって不要となったものが指定されるようです。
ただし[[特性]]自体は削除されることはない [SRC[>>30]]
とされ、恒久的に残されるようです。
[39]
[[非推奨]]の[[特性]]は、
使うべきではありません [SRC[>>30]]。
;; [101] [CODE[Deprecated]] という名前の特性もありますが、また別です。
[38]
[[安定化]]された[[特性]]は、
値が凍結されて以後メンテナンスされません [SRC[>>30]]。
[43]
[[UCD]]
に含まれる説明の [CODE[.html]]
ファイルは、
廃止されることがあります
[SRC[>>41]]。
廃止されると新しい版の
[[UCD]]
にはファイル自体が含まれなくなるようです。
* UCD のライセンス
[17] [[UCD]] のデータは [[EXHIBIT 1 UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE]]
の対象となっています。示された条件に従う限り、[[ソフトウェア]]への組み込みなど自由に利用できるようです。
* [CODE[UnicodeData.txt]]
[58] [DFN[[CODE[UnicodeData.txt]]]]
は、
[[UCD]]
のファイルの1つです。
古くからある基礎的な[[特性][特性 (UCD)]]が記述されています。
[REFS[
- [59] <http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt>
]REFS]
[60] [CODE[UnicodeData.txt]] のデータは他のファイルにも含まれていて、
そちらの方が使いやすいかもしれません。
,*欄#,*値 ,*他のファイル
,0,[[符号位置]]
,1,[[Name]] ([[文字名称]]) ,[[NamesList.txt]]
,2,[[General_Category]] ,[[DerivedGeneralCategory.txt]]
,3,[[Canonical_Combining_Class]] ,[[DerivedCombiningClass.txt]]
,4,[[Bidi_Class]] ,[[DerivedBidiClass.txt]]
,5,"[[Decomposition_Type]], [[Decomposition_Mapping]]" ,[[DerivedDecompositionType.txt]]
,6-8,"[[Numeric_Type]], [[Numeric_Value]]" ,"[[DerivedNumericType.txt]], [[DerivedNumericValues.txt]]"
,9 ,[[Bidi_Mirrored]] ,[[DerivedBinaryProperties.txt]]
,10,[[Unicode_1_Name]] (廃止)
,11,[[ISO_Comment]] (廃止)
,12,[[Simple_Uppercase_Mapping]] ,"[[CaseFolding.txt]], [[DerivedCoreProperties.txt]]"
,13,[[Simple_Lowercase_Mapping]] ,"[[CaseFolding.txt]], [[DerivedCoreProperties.txt]]"
,14,[[Simple_Titlecase_Mapping]] ,"[[CaseFolding.txt]], [[DerivedCoreProperties.txt]]"
[62]
このファイルの形式は、
[[UCD]]
の新しいファイルの形式 (>>46)
と少し違うところもあります。
[63] 欄の先頭と末尾に[[間隔]]は挿入できません。 [SRC[>>45]]
[80] 欄が[[空文字列]]のとき、
既定値であることを表します。
[SRC[>>45]]
[61] [[CJK統合漢字]]や[[ハングル音節]]や[[私用域]]などは各[[符号位置]]ではなく範囲として記述されているので注意が必要です。
また、未割当の[[符号位置]]や[[非文字]]は含まれていません。
[64] この範囲の記述形式は、
新しいファイルのような [CODE[..]] を使う形式ではなく、
範囲の先頭の[[符号位置]]と、最後の[[符号位置]]の[[行]]を別々に記述する形式となっています。例えば、
[PRE(code)[
4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
9FEF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
]PRE]
... のように [CODE[<[VAR[...]], First>]],
[CODE[<[VAR[...]], Last>]]
と書かれた2つの[[行]]で範囲であることが示されます。[SRC[>>45]]
* メモ
[16] [[符号化文字集合]]の実装のためには、[[仕様書]]本文だけでなく、含まれている各[[文字]]の詳細な情報が必要になります。
旧来の[[符号化文字集合]]は比較的小規模で性質の似た[[文字]]のみを含んでいたこともあり、
そのような情報をほとんど提供してきませんでした。 [[UCD]]
のような形で[[機械可読]]な実装用の情報を提供する[[符号化文字集合]]は他に無く、
これが [[Unicode]] の成功の要因の1つと言えるかもしれません。
([[ISO/IEC 10646]] も単独では十分な実装が困難でしょう。)
[20] → [[ISO/IEC 10646]] も単独を諦めて、今では多くの項目が
[[Unicode]] を参照する形になっています。
[3] [CITE@en-us[UTR #23: The Unicode Character Property Model]]
([TIME[2015-05-28 05:51:30 +09:00]] 版)
<http://unicode.org/reports/tr23/>
[18] [CITE@en[Remove Unicode database version requirement · whatwg/javascript@4f1a517]]
([TIME[2016-02-19 22:53:52 +09:00]] 版)
<https://github.com/whatwg/javascript/commit/4f1a517f02bc15e934aafae0ec2b47c80786ab7f>