跳到主要内容

Punycode 编解码

中文域名与 xn-- 编码互转

按 RFC 3492 本地计算,与 Node/浏览器标准库一致。整域名模式会逐段处理(例:例子.com → xn--fsqu00a.com)。识别钓鱼域名时,把 xn-- 解码看清真实 ASCII。

为什么需要 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– 前缀)。结果即时显示,复制即用。

常见场景与实例

例:编码 例子.comxn--fsqu00a.com(其中 例子xn--fsqu00a)。

例:解码识钓鱼 xn--80ak6aa92e.com 解码出真实 Unicode,和你想访问的域名逐字比对,发现不符即警惕。

相关工具:URL 解析Slug 生成

隐私说明

全程浏览器本地按 RFC 3492 计算,不联网、不上传你输入的域名。

常见问题

什么是 Punycode / xn-- ?
DNS 只认 ASCII,非英文字符的域名要用 Punycode 编码成 xn-- 开头的 ASCII 串(如 例子.com → xn--fsqu00a.com)。浏览器地址栏显示中文,底层实际用它。
怎么用本工具?
编码:输入中文标签(如 例子),得到 xn--fsqu00a;解码:输入 xn--... 还原中文。可整域名也可只转标签部分。
钓鱼域名怎么识别?
攻击者用外观相近的 Unicode 字符注册域名(同形异义字攻击)。解码 Punycode 能看清真实 ASCII 形态,发现 xn-- 里藏着的陌生字母,提高警惕。
RFC 3492 是什么?
它是 Punycode 的官方标准算法,用分离插入法把 Unicode 压缩成 ASCII 且可逆。本工具严格按该算法实现,结果与各语言标准库一致。