IDNA
Internationalized Domain Names for Applications (IDNA)
アプリケーションにおけるドメイン名の国際化(IDNA)
表記的にDNS上で国際化ドメイン名が利用できる仕組み DNSではなくアプリケーション側で対応する
ICANN 実装ガイドライン Version 4.1
Version 4.1
RFC 3490 - 3492,3454 IDNA2003
アプリケーションからドメイン名検索に漢字などのUnicode文字を含めて扱う方法をまとめたもの 正規化はIDNA2008ではUnicode UTS #46 で事前にすることになったのかな? Unicode正規化はNFKCで互換文字を変換するのが妥当かな
IDNA2003で使えた区切り文字..。。はIDNA2008で.のみに戻されている
IDNA2008
RFC 5890 アプリケーションにおけるドメイン名の国際化 (IDNA): 定義と文書フレームワーク Definitions and Document Framework
Defs または Definitions (定義)と呼ばれる (非公式)
ラベルの分け方みたいなの
RFC 5891 アプリケーションにおけるドメイン名の国際化 (IDNA): Protocol
Protocol と呼ばれる (非公式)
RFC 5892 The Unicode Code Points とアプリケーションにおけるドメイン名の国際化 (IDNA)
Tables と呼ばれる (非公式)
RFC 5893 アプリケーションにおけるドメイン名の国際化 (IDNA) における右から左に表記する用字
Bidi と呼ばれる (非公式)
RFC 5894 アプリケーションにおけるドメイン名の国際化 (IDNA): Background, Explanation, and Rationale
Rationale (根拠) と呼ばれる (非公式)
RFC 5895 Mapping Characters for アプリケーションにおけるドメイン名の国際化 (IDNA) 2008 JPRS訳 UTS #46: Unicode IDNA Compatibility Processing Revision 33 で Unicode 16.0.0 に対応している?
準拠度でC1(非推奨), C2, C3がある
Unicode の更新に対応したもの
RFC 6452 The Unicode Code Points and アプリケーションにおけるドメイン名の国際化 (IDNA) - Unicode 6.0
変更なし?
RFC 6912 Principles for Unicode Code Point Inclusion in Labels in the DNS
RFC 8753 Update 5892 アプリケーションにおけるドメイン名の国際化 (IDNA) Review for New Unicode Versions
RFC 9233 アプリケーションにおけるドメイン名の国際化 2008 (IDNA2008) と Unicode 12.0.0
中国のドメイン名
RFC 4713 Registration and Administration Recommendations for Chinese Domain Names
RFC 8264 PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols RFC 7564 PRECIS Framework 廃止 → 8264
IDNA2003
RFC 3490 廃止 →5890 , 5891
RFC 3492 Punycode: A Bootstring encoding of Unicode for アプリケーションにおけるドメイン名の国際化 (IDNA) →Updated 5891 RFC 4690 Review and Recommendations for Internationalized Domain Names (IDNs)
RFC 3743 Joint Engineering Team (JET) Guidelines for Internationalized Domain Names (IDN) Registration and Administration for Chinese, Japanese, and Korean
RFC 1034
RFC 1035
RFC 6532 国際化 Email Headers
RFC 6531 SMTP 拡張 for国際化 Email RFC 6530 Overview and Framework for 国際化 Email
RFC 5336 SMTP 拡張 for 国際化 Email Addresses → 6531
RFC 5335 国際化 Email Headers → 6532
ドメイン名
www.example.com
テキストラベル、ラベル
www example com の個々
LDHコードポイント
Unicode の英字 0041..005A, 0061..007A, 数字 0030..0039, ハイフン(マイナス) 002D のいずれかを含む
ACEプレフィックス xn-- ASCII-Compatible Encodingの略 頭に付ける文字
LDHラベル ドメイン名に使用できるラベルの文字集合
NR-LDH (Non-Reserved) 3文字目、4文字目に--を含まない
R-LDH タグ付きドメイン名 3文字、4文字目に -- を含む
XN-LDH xn-- ではじまる
A-ラベル nx--以降がIDNA有効検査で有効 (ASCII文字59文字)
疑似A-ラベル 他
xn--以外ではじまる 通常のLDHラベルではない
非LDHラベル
ハイフンで開始または終了
他の非LDH ASCII文字で構成 #$%_ など IDNAではA-ラベル、U-ラベル、NR-LDHラベルが有効
table:IDNA比較
Unicode正規化 符号化 区切り文字 利用可能Unicodeバージョン 利用可能文字
IDNA2003 NFKC ACE Punycode ..。。 Unicode 3.2ぐらい Stringprep / Nameprep
IDNA2008 NFC 事前 (自由?) ACE Punycode . 制限なし Unicode UTS #46 日本語は NFKC でもいいのか? Unicode NFC + Stringperp または Unicode UTS #46 が正規化か 全角半角変換は Stringprep, UTS #46 に含まれる 電子メール
EAI
Java
java.net.IDN は IDNA2003
java.net.URI が RFC 2396ベース RFC 3986 に未対応