Punycode 编码器/解码器 (IDN 域名)
指导
Punycode 编码器/解码器
即时转换国际化域名(IDN)的 Unicode 和 Punycode 格式。输入像 münchen.de 这样的非 ASCII 字符域名,即可获得兼容 ASCII 的编码 xn--mnchen-3ya.de,或将 Punycode 解码回可读的 Unicode 格式。使用 RFC 3492 Bootstring 算法确保结果准确无误。
如何使用
在输入字段中输入域名。在“编码”模式下,键入 Unicode 域名(如 日本語.jp)以获取其 Punycode 格式(xn--wgv71a309e.jp)。在“解码”模式下,粘贴 Punycode 域名以查看其可读的 Unicode 格式。启用“处理整个域名”以分别处理每个标签,并提供每标签细分,显示每个部分的转换。
特征
- 符合 RFC 3492 – 实现完整的 Bootstring/Punycode 算法,用于国际化域名的准确编码和解码。
- 编码与解码 – 将 Unicode 域名转换为兼容 ASCII 的 Punycode(xn-- 前缀),或将 Punycode 解码回可读的 Unicode。
- 完整域名处理 – 按点分割多部分域名,并独立处理每个标签,直接传递纯 ASCII 标签。
- 每标签细分 – 显示每个域名标签如何被转换的详细细分,便于验证结果。
- 输入验证 – 检测无效的 Punycode 序列、空输入和格式错误的域名,并提供清晰的错误消息。
- 实时转换 – 输入或更改模式时,输出即时更新。
何时使用此工具
在注册或配置国际化域名、调试包含 xn-- 编码标签的 DNS 记录、验证 IDN 域名是否正确解析,或转换电子邮件标题和 SSL 证书的显示格式与实际格式时,请使用此工具。对于处理多语言网站和国际受众的 Web 开发人员和系统管理员来说,它至关重要。
常问问题
-
什么是 Punycode?
Punycode 是 RFC 3492 中定义的一种编码语法,它将 Unicode 字符转换为域名系统(DNS)使用的有限 ASCII 字符集。由于 DNS 只支持 ASCII 字符,因此包含 ü、日或 العربية 等字符的国际化域名必须编码为兼容 ASCII 的形式。Punycode 在编码的标签前添加“xn--”前缀 — 例如,münchen.de 变为 xn--mnchen-3ya.de。
-
什么是国际化域名(IDN)?
国际化域名(IDN)是指包含基本 ASCII 字符集以外字符的域名 — 例如带音标的拉丁字符(café.com)、中文字符(例え.jp)、阿拉伯文(مثال.com)或西里尔文(пример.ru)。IDN 允许用户使用他们本国语言和文字的域名。在后台,这些域名会被转换为 Punycode 以便 DNS 解析。
-
xn-- 前缀是什么意思?
“xn--”前缀是 ASCII 兼容编码(ACE)前缀,用于标识一个域名标签是 Punycode 编码的。当 DNS 解析器看到一个以“xn--”开头的标签时,它知道该标签的其余部分需要从 Punycode 解码回 Unicode 以便显示。例如,xn--mnchen-3ya 是“münchen”的 Punycode 编码。选择此前缀是因为“xn--”在普通域名中极少出现。
-
IDNA2003 和 IDNA2008 有何区别?
IDNA2003 和 IDNA2008 是国际化域名应用程序标准 (Internationalized Domain Names in Applications standard) 的两个版本。IDNA2003 在编码前会映射某些字符(如 ß 映射到 ss,或大写字母映射到小写字母),这意味着某些字符无法正确地往返转换。IDNA2008 移除了大部分映射,并更严格地处理字符 — 例如,ß 现在是一个有效字符,其编码方式与 ss 不同。大多数现代系统使用 IDNA2008,但一些浏览器仍会应用 IDNA2003 的兼容性映射。
