[1] [[非ASCII文字]]を含む[[ラベル]]であって [[IDNA妥当]]であるものを[DFN[[RUBYB[U ラベル]@en[U-label]]]]といいます。

* 仕様書

- [20] [CITE@en[RFC 5890 - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework]] 
-- [2] '''<http://tools.ietf.org/html/rfc5890#page-12>'''
-- [21] <http://tools.ietf.org/html/rfc5890#section-4.2>
- [23] [CITE@en[RFC 5894 - Internationalized Domain Names for Applications (IDNA): Background, Explanation, and Rationale]] ([TIME[2011-02-05 07:34:29 +09:00]] 版) <http://tools.ietf.org/html/rfc5894#section-4.2>

* 定義

[3] [[Uラベル]]は[[IDNA妥当]]である [[Unicode文字]]の列であり、
すなわち次の条件を満たすものです。 [SRC[>>2]]

- [6] [[NFC]] である
- [7] [[非ASCII文字]]を最低1文字含む
- [8] 標準の[[Unicode符号化形]] ([[UTF-8]] など) で表現されている
- [9] 利用できる[[文字]]についての制約を満たす
- [10] [[導出特性値]]に基づく規則に従っている
- [11] [[rtl]] [[文字]]を含むなら [[bidi規則]]に従っている
- [12] [[対称性]]制約も満たす

;; [24] >>9 や >>10 について詳しくは[[IDNラベル]]の項を参照。

[13] [DFN[[RUBYB[対称性制約]@en[symmetry constraint]]]] [SRC[>>2]]: [[Uラベル]] [VAR[U[SUB[1]]]]
と [[Aラベル]] [VAR[A[SUB[1]]]] について、
- [VAR[A[SUB[1]]]] は [VAR[U[SUB[1]]]] からの変換で生成できなければなりません。
- [VAR[U[SUB[1]]]] は [VAR[A[SUB[1]]]] からの変換で生成できなければなりません。

[14] 一般に [[DNSラベル]]に適用される規則や規約は [[Uラベル]]と [[Aラベル]]の双方に適用されますが、
2つ例外があります。 [SRC[>>2]]

- [15] [[ASCII文字]]に対する制限は [[Uラベル]]には適用しません。 [SRC[>>2]]
- [16] [[Aラベル]]から [[Uラベル]]に変換すると、 [[DNS]] の63[[オクテット]]制限を超えて252[[文字]]まで長くなる可能性があります。 [SRC[>>2, >>21]]
-- [17] [[IDNA]] 的にはそのような[[Uラベル]]も[[妥当]]ですが、[[アプリケーション]]によってはそれより短く制限しているかもしれないので注意が必要です。 [SRC[>>2, >>21]]

* 文脈

[18] [[Uラベル]]は表示や入力、あるいは [[DNS]] を使わない [[IDNA]] 対応[[プロトコル]]で使うことができますが、
[[ゾーン・ファイル]]や[[照会]]では使うことができません。 [SRC[>>2]]

* レンダリング

[22] [[Uラベル]]と[[Aラベル]]は常に変換可能であり、どちらで[[レンダリング]]することもできますが、
[[Aラベル]]は人間にはわかりにくいので通常は[[Uラベル]]を使うべきとされています。
どちらかを[[利用者]]が選べる場合であっても、[[既定値]]は[[Uラベル]]であるべきとされています。
[SRC[>>23]]

* 関連

[19] [[Uラベル]]の要件を満たすか未確認のものを[[未検証Uラベル]]といいます。

[FIG(quote)[
[FIGCAPTION[
[4] [CITE@en[RFC 7483 - JSON Responses for the Registration Data Access Protocol (RDAP)]]
([TIME[2015-03-26 07:38:37 +09:00]] 版)
<https://tools.ietf.org/html/rfc7483>
]FIGCAPTION]

>    Unicode names:    Textual representations of DNS names where one or
>                      more of the labels are U-labels as described by
>                      '''['''RFC5890''']'''.  Trailing periods are optional.

]FIG]

[25] [[OID]] は ([[ドメイン名]]ではなく独自の識別子ですが) [[Unicode label]]
を規定し、その比較を「[[IDNA2008]] [[Aラベル]]への変換結果が同じなら等しい」
と定義しています。

;; [26] [[OID]] [[Unicode label]] は [CODE[-]] を使える位置については [[Uラベル]]と同様ですが、
それ以外の使える文字についての規定は異なっています。

[FIG(quote)[
[FIGCAPTION[
[5] [CITE@en[RFC 7482 - Registration Data Access Protocol (RDAP) Query Format]]
([TIME[2015-03-26 08:10:36 +09:00]] 版)
<https://tools.ietf.org/html/rfc7482>
]FIGCAPTION]

>    IDNs SHOULD NOT be represented as a mixture of A-labels and U-labels;
>    that is, internationalized labels in an IDN SHOULD be either all
>    A-labels or all U-labels.

]FIG]
