0

デコード結果

Punycode IDN

エンコード結果

Punycode IDN

Punycode IDNについて

Punycodeは、Unicode文字列をASCII文字だけで表すための符号化方式です。主に、日本語や中国語、韓国語、アクセント付きラテン文字などを含む国際化ドメイン名 (IDN: Internationalized Domain Name) を、DNSで扱えるASCII形式に変換するために使用されます。

国際化ドメイン名では、ドメイン名の各ラベルをPunycodeで変換し、変換されたラベルの先頭に xn-- を付けます。このASCII形式はA-label、元のUnicode形式はU-labelと呼ばれます。

例えば、「ドメイン.com」をPunycode IDNに変換すると以下のようになります。

xn--eckwd4c7c.com

この例では、トップレベルドメインの com はASCIIだけで構成されているためそのまま残り、「ドメイン」の部分だけが xn--eckwd4c7c に変換されます。

Unicode形式Punycode IDN形式説明
ドメイン.comxn--eckwd4c7c.com日本語を含むドメイン名です。
例え.テストxn--r8jz45g.xn--zckzah複数のラベルがそれぞれ変換されます。
bücher.examplexn--bcher-kva.exampleアクセント付きラテン文字を含む例です。

Punycode IDNは、URLエンコーディングとは別の仕組みです。URLエンコーディングがURL内の文字を %E3%81%82 のようなバイト列で表すのに対し、Punycode IDNはドメイン名のラベルを xn-- で始まるASCIIラベルに変換します。

ドメイン名のラベル単位の変換

ドメイン名はドット (.) で区切られたラベルの並びです。Punycode IDNでは、ドメイン名全体を1つの文字列として変換するのではなく、各ラベルを個別に変換します。

ラベル変換結果
例えxn--r8jz45g
テストxn--zckzah

そのため、例え.テスト の変換結果は xn--r8jz45g.xn--zckzah になります。