Punycode 与 IDN 转换器

在你的浏览器中,逐个标签地在国际化域名与 Punycode(xn--)之间相互转换。你粘贴的域名都留在你的设备上。

Punycode / IDN 转换器完全在你的浏览器中运行。你输入或粘贴的域名和 URL 都在你的设备上,用内置的 RFC 3492 实现完成转换,绝不会上传到 ArrayKit。

打开 URL 编码器 / 解码器

关于 Punycode 转换器

Punycode / IDN 转换器会把国际化域名转换成浏览器和 DNS 实际使用的 ASCII 形式——并可反向还原。输入一个 Unicode 主机名,例如 münchen.de、例え.テスト,或一个 emoji 域名,它会用 RFC 3492 Punycode 对每个标签进行编码,仅为需要的标签加上 xn-- 前缀。切换方向即可粘贴一个 xn-- 域名,读出它所代表的、对人友好的 Unicode。它逐个标签地工作,因此子域名、ASCII 顶级域、端口和路径都会原样直接通过。它在识别同形异义钓鱼、注册 IDN、调试 TLS 证书或邮件主机,以及查看一个经 Punycode 编码的链接真正指向何处时都很好用。每次转换都在你的设备上运行——你粘贴的域名绝不会被上传。

功能特性

如何使用 Punycode 转换器

  1. 保持选中「Unicode → ASCII」以编码国际化域名
  2. 输入或粘贴一个域名,例如 münchen.de 或 例え.テスト
  3. 从输出窗格复制 ASCII 的 xn-- 域名
  4. 切换到「ASCII → Unicode」,粘贴一个 xn-- 域名将其读回

示例

输入

münchen.de

输出

xn--mnchen-3ya.de

只有非 ASCII 的「münchen」标签会变成 xn--mnchen-3ya;.de 顶级域保持不变。

常见错误与故障排除

常见问题

什么是 Punycode,域名为什么要用它?
Punycode(RFC 3492)仅使用 DNS 允许的 ASCII 字母、数字和连字符来表示 Unicode 域名标签。国际化标签经过编码并加上 xn-- 前缀,因此 münchen.de 在网络上以 xn--mnchen-3ya.de 的形式传输。
域名上的 xn-- 前缀是什么意思?
xn-- 是 IDNA 的「ACE」(ASCII 兼容编码)前缀。它标记一个标签,其余字符是经 Punycode 编码的 Unicode 字符串,告诉浏览器和解析器将其解码还原为原始字母以供显示。
为什么我的域名只有一部分被转换成 xn--?
转换是逐个标签进行的。仅由 ASCII 字符组成的标签(如 www 或 com)本就符合 DNS,会保持原样;只有包含非 ASCII 字符的标签才会被 Punycode 编码并加上 xn-- 前缀。
它能帮我识别同形异义的钓鱼域名吗?
可以。来自不同文字系统的相似字母会让一个假域名看起来像真的。把它编码为 ASCII 会暴露出各不相同的 xn-- 形式,因此用西里尔字母「а」写成的 аpple.com 就不再看起来像 apple.com。
转换器会把我的域名转为小写或应用 IDNA nameprep 吗?
不会。它执行纯粹的 Punycode 转码并精确保留你的标签,因此先编码再解码会返回原始文本。它不应用 IDNA 的大小写折叠、规范化或校验。
它能处理 emoji 域名以及带端口或路径的 URL 吗?
可以。emoji 和其他星平面字符都能正确编码——💩.la 会变成 xn--ls8h.la——完整 URL 中的任何协议、端口、路径或查询都会原样通过,而只有主机名标签会被转换。

相关工具

全部 ArrayKit 工具