Punycode 编解码

🔤 Punycode Encode/Decode

📐 工作原理与说明
国际化域名(IDN)的 Punycode 编解码。
  • 用途:DNS 只支持 ASCII,含非 ASCII 字符的域名必须转写为 Punycode 才能解析。
  • 编码:保留原有 ASCII 部分,非 ASCII 部分按算法压缩为字母数字串。
  • 前缀:转换结果以 xn-- 开头,如「中国」→ xn--fiqs8s。
  • IDNA:实际域名系统使用 IDNA 规则,先做名称预处理再做 Punycode 编码。

Encode and decode Punycode (RFC 3492) for internationalized domain names (IDN) directly in your browser.

📖 算法说明

Punycode 用于 IDN 域名转换,将非 ASCII 域名转为 ASCII。

例如: 中文.com → xn--fiqs8s.com

📚 深度解析:Punycode 编解码

💡 常见使用场景

  • 把含中文的域名(如 中文.com)编码为 ASCII 以兼容 DNS。
  • 给中文域名备案或配置 DNS 时转成 xn-- 形式,因为 DNS 系统本身只接受 ASCII 字符。
编码 "中文"
输入 `中文` → 输出 `xn--fiq228c`(即域名标签 `xn--fiq228c`)。

❓ 常见问题(FAQ)

浏览器地址栏为何显示中文?
浏览器解码 Punycode 后展示 Unicode,但底层 DNS 仍用 xn-- 形式。
为什么要警惕同形异义域名?
因为不同语言的字符可能长得几乎一样(如西里尔字母 а 与拉丁字母 a),攻击者可注册外观相同但码点不同的域名做钓鱼。因此浏览器对 IDN 有显示策略:若混用了多种文字,往往直接显示 Punycode 而非原文。企业应为品牌域名注册常见变体。
⚠️ 使用说明与注意事项
📖关于「Punycode 编解码」 ▼

📝工具简介

Punycode 编解码。专为开发者打造的在线工具,纯前端运行,代码不离开浏览器。