实用工具
输入
结果
结果会显示在这里。DNS 只传输 ASCII,所以 münchen.de 或 中国.公司 这样的域名,实际以 xn--mnchen-3ya.de 和 xn--fiqs8s.xn--55qx5d 的形式传递。配置 DNS 记录、TLS 证书、nginx server_name 或邮件时会用到 xn-- 形式;日志里出现 xn-- 域名时,又需要可读的形式。这个转换器用 punycode.js(Node.js 多年内置的实现)逐个标签地双向转换。对于 URL 和邮箱地址,只转换域名部分,路径、查询字符串和 @ 前面的部分保持不变。
它是怎么工作的
- 每行一个域名、URL 或邮箱地址;自动模式下,含 xn-- 标签的行转成 Unicode,其他行转成 Punycode。
- 编码前会转成小写并做规范化,句号 。 会被当作点,这与浏览器处理手输域名的方式相同。
- 以下情况会发出警告:标签超过 63 个字符、整个域名超过 253 个字符,以及同一标签里混用拉丁字母和西里尔或希腊字母。
- 纯 ASCII 域名原样通过,URL 中的 IPv6 地址也不做处理。
你的数据去了哪里
哪也没去。本工具完全在你的浏览器里运行:你粘贴的文本由页面处理,不会传输到任何服务器,也不会写进任何日志。
本工具免费且无需登录,运行结果只存在于你当前的页面里,不会被保存到任何地方。
它要花多少
本工具完全免费,不需要登录,也不消耗积分。
常见问题
- 什么是同形异义字攻击?
- 注册一个看起来像知名网站、但用了其他文字字符的域名——比如用西里尔字母 а 代替拉丁字母 a 的 аpple.com。屏幕上两者几乎一模一样,Punycode 却不同:xn--pple-43d.com。这个工具会标出混用拉丁字母与西里尔或希腊字母的标签,这是最常见的手法。浏览器遇到可疑域名时也会显示 xn-- 形式。
- 这和 URL 编码是一回事吗?
- 不是。URL 编码(百分号编码)用于路径和查询字符串:ü 变成 %C3%BC。Punycode 只用于域名,URL 里只有主机部分用它转换。地址的其余部分请用本站的 URL 编码工具。
- 这是完整的 IDNA 2008 / UTS #46 处理吗?
- 不完全是。它会转小写、做 Unicode 规范化(NFC)并处理句号 。,足以覆盖人们实际注册的域名。但它没有实现 UTS #46 的全部映射,也不会拒绝注册局可能拒绝的每一个字符,所以这里能转换的名字,注册商仍可能不接受。
背后的开源项目
本工具运行在 mathiasbynens/punycode.js 之上,以 MIT 许可发布。如果你需要在自己的程序里实现同样的能力,直接用这个库。
mathiasbynens/punycode.js也常被称作
- punycode 转换
- 中文域名转码
- idn 域名转换
- xn-- 解码
- punycode 转中文
- 仿冒域名检测