国际域名注册
外贸公司运营小陈注册了一个包含中文「星」字的域名,但注册局后台只认 `xn--` 开头的 Punycode 编码。他把中文域名粘贴到工具里,一秒转出 `xn--wxtr44c`,复制到注册商搜索框直接通过,避免了因编码错误反复试错、甚至被他人抢注的风险。
在浏览器地址栏敲中文域名,按下回车却跳转到错误页面——这是浏览器无法直接解析中文,背后需要将“百度.中国”转成“xn--百度-8vz.xn--中国-6x4”。在开发者工具、Nginx 配置或 Whois 查询里,看到的多是这种 Punycode 编码。这个工具在浏览器内完成双向转换:粘贴中文域名,即时输出 xn-- 形式;反之亦然。所有字符处理都在本地,域名不会离开当前页面。
外贸公司运营小陈注册了一个包含中文「星」字的域名,但注册局后台只认 `xn--` 开头的 Punycode 编码。他把中文域名粘贴到工具里,一秒转出 `xn--wxtr44c`,复制到注册商搜索框直接通过,避免了因编码错误反复试错、甚至被他人抢注的风险。
企业邮箱管理员老张收到一封发件人显示为「张三@公司.中国」的邮件,但服务器日志里全是乱码。他用工具把「公司.中国」转成 `xn--3bst00b.xn--fiqs8s`,填入邮件白名单规则,彻底解决了国际化邮件地址被反垃圾系统误拦截的问题。
用户小李在微信里收到一个中文域名链接「测速.中国」,点击后微信无法直接打开。他复制链接到本工具,转成 `xn--0tr25m.xn--fiqs8s`,再粘贴到 Chrome 地址栏,成功访问目标网站,避免了手动拼写 `xn--` 编码时容易漏字符的错误。
站长小王为中文域名「商城.中国」申请 Let's Encrypt 免费证书,但 ACME 客户端要求输入 Punycode 格式。他用工具把域名转成 `xn--55qx5d.xn--fiqs8s`,填入 CSR 生成命令,证书签发一次性成功,比之前手工查 RFC 表逐个字符转换快了 10 分钟。
运维工程师老赵在阿里云 DNS 控制台添加「测试.公司」的 A 记录,系统提示域名格式错误。他复制中文域名到工具,得到 `xn--0tr25m.xn--55qx5d`,填入记录值后生效。若直接填中文,DNS 解析会因编码不兼容导致网站无法访问。
| 输入 | 输出 | 说明 |
|---|---|---|
| 中文 | xn--fiq228c | 常规:两字中文域名,最典型的使用场景,验证基本编码转换 |
| 中国银行.中国 | xn--1lqs65d.xn--fiqs8s | 常规:含中文顶级域名的完整域名,验证多段编码 |
| 你好世界 | xn--6qq79v37d | 常规:四字中文,验证多字符输入无异常 |
| a | a | 边界:单字符纯ASCII,工具应原样返回,不触发编码 |
| xn--fiq228c | 中文 | 边界:输入已是Punycode编码,工具应解码回中文,验证双向转换 |
| 错误:输入为空 | 边界:空白输入,验证工具对空值的处理(不崩溃、不返回错误结果) | |
| 中文123 | xn--fiq228c123 | 易错:中英文数字混合,验证仅中文部分被编码,数字保持原样 |
| a.b.c | a.b.c | 易错:纯ASCII域名含点号,工具应保持原样,不误编码点号 |
1.把完整 URL 直接粘贴到输入框
https://百度.com百度.comPunycode 转换只针对域名部分(不含协议、路径、端口),输入完整 URL 会导致转换失败或产生无意义结果。
2.混入空格或不可见字符
百度. com百度.com域名中不允许空格。复制时可能带入换行符、制表符或全角空格,这些字符会让 Punycode 编码结果完全错误。
3.把 Punycode 结果当普通域名直接访问
xn--百度-7v8b.comxn--百度-7v8b.com(仅用于技术查看,浏览器会自动转换)Punycode 是 ASCII 表示形式,浏览器地址栏通常显示 Unicode 形式。手动输入 Punycode 结果可能被部分客户端视为非法域名。
4.混淆 IDN 与 Punycode 方向
把 xn--4gq094i 当作中文域名输入xn--4gq094i 是编码结果,应输入中文域名进行转换Punycode 是单向编码过程:中文→xn--形式。反向转换(解码)是另一操作,输入框默认只做编码,混用方向会得到无意义输出。
5.输入含特殊符号的非标准域名
百度.com#fragment百度.com域名中不允许 #、?、@ 等符号,这些属于 URL 其他部分。Punycode 转换只处理标签(label),含非法字符会报错或产生无效编码。
6.误以为所有非 ASCII 域名都能转换
输入纯英文域名 example.com仅输入含非 ASCII 字符的域名(如中文、日文、西里尔字母)Punycode 编码只对非 ASCII 字符生效。纯 ASCII 域名输入后输出与输入相同,用户可能误以为工具未工作。
7.忽略 IDN 同形字攻击风险
paypaI.com(I 是大写 i,实际是西里尔字母 palochka)使用前确认域名来源可信不同 Unicode 字符可能外观相同(如拉丁 l 与西里尔 і),Punycode 会正确编码但用户肉眼难辨,这是钓鱼攻击常见手法。
Punycode(x) = xn-- + base32encode(toASCII(x))
x输入的中文域名(如 例子.测试)toASCII(x)IDNA 2008 标准中域名转 ASCII 的预处理结果base32encode将字节序列编码为 Punycode 字母表的算法输入中文域名「例子.测试」:先按 IDNA 2008 拆分标签,对「例子」执行 toASCII 得到字节序列 0x4F8B 0x5B50,再经 base32encode 得到「xn--fsq」;对「测试」同理得「xn--0zwm56d」。最终 Punycode 域名为「xn--fsq.xn--0zwm56d」。
直接把完整的中文域名(比如 `例子.测试` 或 `百度.中国`)粘贴到输入框,点击转换即可。工具会自动识别域名中的非 ASCII 字符并转换成 Punycode(xn-- 前缀)。注意只输入域名本身,不需要加 `http://` 或路径。如果域名里同时包含中英文(如 `abc.公司`),英文部分会原样保留,只有中文部分被转换。
对的。Punycode 编码后的字符串是 ASCII 字符的固定组合,看起来像乱码,但它是标准编码结果。比如 `xn--fsqu00a.xn--0zwm56d` 对应 `例子.测试`。每个 Punycode 段(两个 `.` 之间的部分)都唯一对应一个 Unicode 标签。如果担心转错了,可以点结果旁边的“反向转换”按钮或者把编码粘贴回输入框再转一次,看是否能还原成原来的中文。
最常见的原因是输入中包含了空格或特殊符号。Punycode 转换只处理域名标签(Label),也就是被 `.` 分隔的每一段。请检查输入:不要有前后空格;不要包含 `http://`、`www` 或路径(如 `/page`);确保只用了标准的英文句点 `.` 作为分隔符。另外,如果输入的是纯英文域名(如 `example.com`),工具会提示无需转换,因为纯 ASCII 域名本身不需要编码。
所有转换都在浏览器本地完成,不会上传任何数据。本工具采用纯前端(FE)实现,Punycode 编码和解码逻辑直接运行在你的浏览器内。即使断网,页面加载后也能正常使用。输入的中文域名不会被发送到服务器,也不会有任何记录,适合处理敏感或内部使用的域名。
绝大多数现代浏览器(Chrome、Firefox、Edge、Safari)和操作系统都原生支持 Punycode 域名解析,直接在地址栏输入 xn-- 开头的域名可以正常访问。但少数老旧浏览器或某些网络环境(如企业防火墙)可能不支持。另外,邮箱客户端对 Punycode 的支持不一,如果要用在邮件链接里,建议保留中文形式或测试后再发送。
结果完全一致,都遵循 RFC 3492(IDNA)标准。本工具的价值在于:一是可以批量或单独查看编码后的字符串,方便复制到配置文件、DNS 记录或技术文档中;二是提供反向转换功能,能把 xn-- 串还原回中文,方便调试。浏览器地址栏虽然也能自动转,但只显示结果,不提供复制或反向查看的入口。
有。DNS 协议规定单个域名标签(Label)最长 63 个 ASCII 字符。中文转成 Punycode 后,每个汉字可能变成 4-6 个 ASCII 字符,所以一个中文域名标签最多只能包含约 10-15 个汉字。如果输入的中文标签转换后超过 63 字符,工具会提示错误。整个域名(含点)总长不超过 253 字符。这是 DNS 的硬性限制,所有 Punycode 工具都遵守。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。