为什么需要 Punycode 编解码
访问 例子.com、中科院.cn 这类中文域名时,浏览器地址栏看着是中文,底层 DNS 只认 ASCII——它其实被编码成了 xn--fsqu00a.com 这样的 Punycode 串。排查中文域名解析、配 DNS、识别钓鱼域名,都得会在这两种形态间转换。
本工具按 RFC 3492 把中文/国际化域名(IDN)与 Punycode(xn– 开头)互转,整域名逐段处理,全部本地计算。
概念与公式
Punycode 是 RFC 3492 定义的算法,把 Unicode 标签压缩成只含 ASCII 的「xn–」前缀串,且可逆。核心思路是「分离插入法」:
- 先照抄所有 ASCII 基本字符,后面加
-分隔; - 非 ASCII 码点用一组变长数字(base=36)编码其「相对前一个码点的增量」与「插入位置」;
- 解码方按增量还原码点顺序,插回原处。
本工具 编码:中文标签 → xn--...;解码:xn--... → 中文。整域名模式会把 例子.com 每段的「非 ASCII 部分」单独编码,得到 xn--fsqu00a.com。
细分场景
- 中文域名配置:在 DNS / 证书 / Nginx 里填 Punycode 形态。
- 钓鱼识别:同形异义字攻击(如用西里尔 а 冒充拉丁 a)藏在
xn--里,解码能看清真实 ASCII。 - 调试 IDN:确认客户端 / 库对中文域名的处理是否符合预期。
怎么用本工具
选编码或解码方向,勾选「整域名(逐段处理)」。域名模式每行一个域名;单标签模式则直接处理整段输入(不加 xn– 前缀)。结果即时显示,复制即用。
常见场景与实例
例:编码
例子.com → xn--fsqu00a.com(其中 例子 → xn--fsqu00a)。
例:解码识钓鱼
xn--80ak6aa92e.com 解码出真实 Unicode,和你想访问的域名逐字比对,发现不符即警惕。
隐私说明
全程浏览器本地按 RFC 3492 计算,不联网、不上传你输入的域名。