⌘K 切换工具
NETWORK

IDN / Punycode转换工具

Unicode域名和Punycode互转。

local
idn-converter

Internationalized Domain Names are encoded to ASCII (xn--…) for DNS.

§01 关于此工具

概述

国际化域名(IDN)让域名可以包含非 ASCII 字符——日文、西里尔文,以及泛义上的整个 Unicode——但 DNS 本身只说 ASCII。Punycode 算法在中间搭桥:它把每个 Unicode 标签编码成一个带 xn-- 前缀的 ASCII 字符串。这个工具双向实时转换,用来注册或排查 IDN、以及检查可疑的仿冒链接都很合适。转换是纯算法的,不需要查询 DNS,所以对还没注册的域名也照样能算。

使用方法

  1. Unicode domain 里输入一个域名,它的 ASCII 形式会出现在 Punycode (ASCII) 里。
  2. 或者把一个 xn-- 域名粘进 Punycode (ASCII),把它解回 Unicode。两个字段都可编辑,都随输入实时转换。

示例

  • 例え.テストxn--r8jz45g.xn--zckzah
  • xn--bcher-kva.examplebücher.example
  • 日本語.jpxn--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-- 形式,就能看到真正被解析的是什么,仿冒域名因此更容易被发现。