Punycode 编解码
国际化域名 IDN
Unicode → Punycode
编码xn--fiqs8s.xn--fsqu00a.xn--0zwm56dPunycode → Unicode
解码常见示例
使用说明
什么是 Punycode?
Punycode 是一种将 Unicode 字符串表示为 ASCII 字符串的编码方式,主要用于国际化域名(IDN)。它允许在 DNS 系统中使用非 ASCII 字符。
工作原理
Punycode 编码后的域名以 "xn--" 开头,后面跟着编码后的字符串。例如:"中国" 会被编码为 "xn--fiqs8s"。
使用场景
- 注册包含本地字符的国际化域名
- 在不支持 Unicode 的系统中表示域名
- 配置 DNS 记录和服务器
- 开发多语言网站和应用
常见示例
- 中文:中国.com → xn--fiqs8s.com
- 日文:日本.jp → xn--wgv71a.jp
- 德文:müller.de → xn--mller-kva.de
- 阿拉伯文:مصر.com → xn--wgbl6a.com
技术细节
编码规则
- 所有编码后的域名以 "xn--" 前缀开始
- ASCII 字符保持不变,只编码非 ASCII 字符
- 大小写不敏感,通常使用小写
- 每个域名标签单独编码(用点分隔)
浏览器支持
现代浏览器会自动处理 Punycode,用户可以在地址栏中输入 Unicode 域名,浏览器会自动转换为 Punycode 发送给 DNS。
安全提示
注意:Punycode 可能被用于钓鱼攻击(同形异义字攻击)。例如:"apple.com" 可能被伪造为使用西里尔字母的相似域名。请仔细检查域名的真实编码。
小提示
在浏览器地址栏中,您通常看到的是 Unicode 域名,但实际网络请求使用的是 Punycode 编码。您可以使用开发者工具的网络面板查看实际请求。