实用工具

Punycode 转换器(中文域名)

在 中国.公司、münchen.de 这样的国际化域名和 xn-- 开头的 Punycode 之间互相转换,并识别仿冒域名。

浏览器本地运行网络排查1692
免费

输入

0 B

结果

结果会显示在这里。

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 转中文
  • 仿冒域名检测