0

解码结果

Punycode IDN

编码结果

Punycode IDN

关于 Punycode IDN

Punycode 是一种编码方式,用于只使用 ASCII 字符表示 Unicode 字符串。它主要用于将包含日文、中文、韩文或带重音拉丁字母等字符的国际化域名(IDN)转换为 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 不是把整个域名当作一个字符串转换,而是分别转换每个标签。

标签转换结果
例えxn--r8jz45g
テストxn--zckzah

因此,例え.テスト 的转换结果是 xn--r8jz45g.xn--zckzah