-
Notifications
You must be signed in to change notification settings - Fork 4
/
417.txt
127 lines (91 loc) · 6.02 KB
/
417.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
[1] [DFN[IDNA [RUBYB[写像表]@en[Mapping Table]]]]は、 [[UTS #46]] で規定されている[[算法]]
[[Unicode IDNA互換性処理]]で使われる表です。[[Unicode]] の[[符号位置]]に対して[[状態値]]と[[写像値]]が示されており、
[[算法]]中の「[[写像]]」の[[段階]]や、
[[ラベル]]の[[妥当性]]の定義で用いられています。
* 仕様書
[REFS[
- [2] [CITE@en-us[UTS #46: Unicode IDNA Compatibility Processing]] ([TIME[2010-10-30 01:01:25 +09:00]] 版) <http://www.unicode.org/reports/tr46/#IDNA_Mapping_Table>
- [20] [CITE[Index of /Public/idna]] <http://www.unicode.org/Public/idna/>
-- [11] ([TIME[2016-06-21 07:22:40 +09:00]]) <http://www.unicode.org/Public/idna/latest/IdnaMappingTable.txt>
]REFS]
* 写像表
[25] [[IDNA写像表]]は、
([[Unicode符号位置]]、[VAR[[[UseSTD3ASCIIRules]]]]) から ([[状態値]]、[[写像値]])
への[[写像]]です。
* 状態値
[3] [[Unicode]] のすべての[[符号位置]]に対して、
[DFN[[RUBYB[状態値]@en[status value]]]]が定義されています [SRC[>>2]]。
[26] [[状態値]]には、次のものがあります。
[FIG(table)[
:v: 値
:d: 説明
:l: 一覧
:v: [4] [DFN[[RUBYB[[[妥当]]]@en[valid]]]] [SRC[>>2]]
:d: [[Unicode IDNA互換性処理]]で変更されずにそのまま出力されます。
:l: [CITE@en[Character set "IDNA Mapping Table valid"]] ([TIME[2016-08-28 14:07:59 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Avalid>
:v: [5] [DFN[[RUBYB[[[無視]]]@en[ignored]]]] [SRC[>>2]]
:d: [[Unicode IDNA互換性処理]]で削除されます。
:l: [CITE@en[Character set "IDNA Mapping Table ignored"]] ([TIME[2016-08-28 14:07:11 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Aignored>
:v: [6] [DFN[[RUBYB[[[写像]]]@en[mapped]]]] [SRC[>>2]]
:d: [[Unicode IDNA互換性処理]]で他の[[文字列]]に置き換えられます。
:l: [CITE@en[Character set "IDNA Mapping Table mapped"]] ([TIME[2016-08-28 14:07:36 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Amapped>
:v: [7] [DFN[[RUBYB[[[偏差]]]@en[derivation]]]] [SRC[>>2]]
:d: [[Unicode IDNA互換性処理]]で[[写像]]のように他の文字列に置き換えられるか、
[[妥当]]のようにそのまま出力されます。
どちらかは[[Unicode IDNA互換性処理]]の[VAR[処理オプション]]が[[移行的処理]]か[[非移行的処理]]かによります。
([[IDNA2003]] と [[IDNA2008]] とで扱いが異なる4[[文字]]がこの値になっています。)
:l: [CITE@en[Character set "IDNA Mapping Table deviation"]] ([TIME[2016-08-28 14:05:12 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Adeviation>
:v: [8] [DFN[[RUBYB[[[禁止]]]@en[disallowed]]]] [SRC[>>2]]
:d: [[Unicode IDNA互換性処理]]でそのまま出力されますが、
[[誤り]]とみなされます。
:l: [CITE@en[Character set "IDNA Mapping Table disallowed"]] ([TIME[2016-08-28 14:05:41 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Adisallowed>
]FIG]
[16] 次に該当する[[符号位置]]は、 [VAR[[[UseSTD3ASCIIRules]]]] によって[[状態値]]が変化します。
[FIG(table)[
:v: [[IDNA写像表]]上の値
:t: [VAR[[[UseSTD3ASCIIRules]]]] が[[真]]の場合
:f: [VAR[[[UseSTD3ASCIIRules]]]] が[[偽]]の場合
:l: 一覧
:v: [17] [DFN[[[disallowed_STD3_valid]]]]
:t: [[禁止]] [SRC[>>2]]
:f: [[妥当]]として扱うことができます [SRC[>>2]]
:l: [CITE@en[Character set "IDNA Mapping Table disallowed_STD3_valid"]] ([TIME[2016-08-28 14:06:52 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Adisallowed_STD3_valid>
:v: [18] [DFN[[[disallowed_STD3_mapped]]]]
:t: [[禁止]] [SRC[>>2]]
:f: [[写像]]として扱うことができます [SRC[>>2]]
:l: [CITE@en[Character set "IDNA Mapping Table disallowed_STD3_mapped"]] ([TIME[2016-08-28 14:06:08 +09:00]]) <https://chars.suikawiki.org/set/%24uts46%3Adisallowed_STD3_mapped>
]FIG]
[28] [[偽]]の場合は「することができる」という謎の曖昧表現ですが、
実際にはそれぞれ[[妥当]]、[[写像]]として扱うべきと思われます。
;; [27] [[UseSTD3ASCIIRules]] も参照。
* 写像値
[19] [[状態値]]が[[写像]]、[[disallowed_STD3_mapped]]、[[偏差]]の[[符号位置]]には、
[DFN[[RUBYB[[[写像値]]]@en[mapping value]]]]も規定されています。 [SRC[>>2]]
[14] [[写像]]先は、0個[[以上]]の[[符号位置]]の列です。
[REFS[
- [15] [CITE@en[Character mapping "uts46:mapping"]] ([TIME[2016-08-28 14:18:38 +09:00]]) <https://chars.suikawiki.org/map/uts46%3Amapping>
]REFS]
[13] [CODE[U+200C]]、[CODE[U+200D]] では[[写像]]先が[[空文字列]]となるので、
取扱いに注意が必要です。
* 安定性
[9] [[Unicode 5.1]] 以降で[[写像表]]が定義されており、以後、
前の版で[[禁止]]だった[[符号位置]]のみ新しい版で[[状態値]]や[[写像値]]が変更される可能性があります
[SRC[>>2]]。
* ファイル
[21] [[IDNA写像表]]は >>20 で配布されています。
[22] 配布されているファイルの形式は <http://www.unicode.org/reports/tr46/#IDNA_Mapping_Table>
で、導出方法は <http://www.unicode.org/reports/tr46/#Mapping_Table_Derivation> で説明されています。
[10] なお、 [[UTS #46]] にはこの表の導出方法の説明もありますが、その説明ではなく、
この配布されているファイル自体が正式なものとされています。
* 文脈
[12] [[Unicode IDNA互換性処理]]と[[妥当性基準]]で参照されます。
* 歴史
[23] [CITE@en-US[XBL 2.0]]
( ([TIME[2012-05-03 02:23:03 +09:00]] 版))
<http://dev.w3.org/2006/xbl2/Overview.html#ignoring>
[24] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#ignoring>
[29] [CITE@en[Meta: add <dfn>s for list item and map entry, key, and value]]
([[tobie]]著, [TIME[2017-01-13 01:00:50 +09:00]])
<https://github.com/whatwg/infra/commit/5bc75037feddd79c7c73d9cefce08fbf7a3c522b>