按 ⌘K 切换工具
NETWORK
IDN / Punycode转换工具
Unicode域名和Punycode互转。
idn-converter
Internationalized Domain Names are encoded to ASCII (xn--…) for DNS.
§01 关于此工具
概述
国际化域名(IDN)让域名可以包含非 ASCII 字符——日文、西里尔文,以及泛义上的整个 Unicode——但 DNS 本身只说 ASCII。Punycode 算法在中间搭桥:它把每个 Unicode 标签编码成一个带 xn-- 前缀的 ASCII 字符串。这个工具双向实时转换,用来注册或排查 IDN、以及检查可疑的仿冒链接都很合适。转换是纯算法的,不需要查询 DNS,所以对还没注册的域名也照样能算。
使用方法
- 在 Unicode domain 里输入一个域名,它的 ASCII 形式会出现在 Punycode (ASCII) 里。
- 或者把一个
xn--域名粘进 Punycode (ASCII),把它解回 Unicode。两个字段都可编辑,都随输入实时转换。
示例
例え.テスト→xn--r8jz45g.xn--zckzahxn--bcher-kva.example→bücher.example日本語.jp→xn--wgv71a119e.jp
说明
转换是逐个标签(也就是每个用点分隔的部分)进行的;ASCII 标签原样通过。格式有误的 Punycode 会显示 “Could not decode Punycode” 错误。这个工具只做记法转换——它不会验证域名是否已注册,也不会验证该 TLD 是否允许使用这些字符。拿一个可疑链接过一遍,就能看出它实际会解析到哪个 ASCII 名字——视觉上几乎相同的字符会产出完全不同的 Punycode。
FAQ
我输入的域名会发到服务器吗?
不会。Punycode 的编码和解码都在浏览器里用内置的算法实现完成。不发起 DNS 查询,也不发起任何网络请求。
域名为什么会被编码成 xn-- 开头的字符串?
DNS 只承载 ASCII 标签,所以国际化域名会用 Punycode 算法(RFC 3492)做变换,并加上 xn-- 前缀。浏览器在背后自动做这个转换,这就是你在地址栏里很少看到原始形式的原因。
它能帮我识别同形字钓鱼域名吗?
能。看起来一样的 Unicode 字符(比如西里尔字母 а 和拉丁字母 a)会产出不同的 Punycode。把一个可疑链接转成它的 xn-- 形式,就能看到真正被解析的是什么,仿冒域名因此更容易被发现。