给 DNS、证书或网站配置填写中文域名时,有的输入框接受中文,有的要求使用 xn-- 开头的 ASCII 写法。两边看起来不像同一个名字,实际可能只是域名标签的不同表示。

宝塔拨测「中文域名转码」工具可以并排显示中文与 Punycode 结果。下面用 例子.测试 和 www.例子.example 做演示,只检查文本转换,没有查询注册状态、修改解析或申请证书。

输入完整域名,看两个结果框

进入「站长工具 → 中文域名转码」,在「输入域名」中填写:

例子.测试

页面会实时显示结果。本次「中文域名」保持为 例子.测试,「Punycode 域名」为:

xn--fsqu00a.xn--0zwm56d
输入例子.测试后,两个结果框分别显示中文域名和 Punycode 域名
输入例子.测试后,两个结果框分别显示中文域名和 Punycode 域名

需要 ASCII 域名时,复制「Punycode 域名」这一行;需要检查原来的中文名称时,核对上面的中文行。两个结果框各有自己的「复制」按钮,粘贴前确认点的是哪一行,避免把中文又填回只接受 ASCII 的字段。

Punycode 用 ASCII 字符表达非 ASCII 字符,国际化域名中的编码标签带有 xn-- 前缀。域名按点分隔成多个标签,转换也要保留这个层级。上面两个中文标签都发生了转换,不能只复制前半段。

把 xn-- 结果放回去,核对是否还原

清空输入框,将完整的 xn--fsqu00a.xn--0zwm56d 粘回去。当前页面不需要切换“编码/解码”模式,两个结果框自动显示对应形式。本次中文结果重新变为 例子.测试。

输入完整 xn-- 域名后,中文结果还原为例子.测试
输入完整 xn-- 域名后,中文结果还原为例子.测试

这个回填步骤适合排查复制时漏字符、少标签或多空格的情况。核对时应逐个标签检查,不只看开头是否有 xn--。如果别人提供的是一个长编码域名,先看它解码后的文字是否与预期一致,再把它用于配置。

能还原出中文,不等于这个域名可信,也不证明名称归你所有。相似字形和混合文字可能让名字看起来很接近,涉及登录、付款或账号操作时,仍应核对确切来源和完整域名。

英文子域名不会一律加上 xn--

再输入带英文子域名的示例:

www.例子.example

本次 Punycode 结果为:

www.xn--fsqu00a.example
英文 www 与 example 保留,只有中间的中文标签转换为 xn--fsqu00a
英文 www 与 example 保留,只有中间的中文标签转换为 xn--fsqu00a

www 和 example 都保留,中文标签 例子 转成 xn--fsqu00a。因此,xn-- 是标签层面的前缀,不需要手动给整条域名再加一次,也不要把多个标签拼成一个字符串后转码。

如果用于某个具体产品的配置,最终应以该产品接受的域名格式为准。有些产品会自行处理国际化域名,有些要求先填 ASCII 形式;工具的两行结果便于核对,不表示所有产品都有相同输入规则。

只输入域名,不把整条网址送进来

这个工具处理的是域名表示。若原始内容是一个网址,应先分出主机名,去掉协议、路径、查询参数和端口,再做转换。例如,只把 例子.测试 放进框内,不要把 https:// 和 /path?q=1 一起带上。

本次把整条 https://例子.测试/path?q=1 输入后,页面仍给出一串转换文本,结果中带有斜杠和问号。这样的输出不能当成有效的 DNS 主机名使用。出现字符串不代表输入对象符合域名要求,遇到这种情况应先清理输入,而不是把结果直接粘到解析或证书配置里。

还要把“转码成功”和“域名可用”分开:转换没有证明域名已经注册,没有验证 DNS 记录,也没有检测 HTTP、HTTPS 或证书状态。拿到 ASCII 形式后,如果继续排查访问问题,应分别查询解析和实际服务。本文的转换结果也不应被手动换成其他顶级域后缀;后缀属于域名本身,换了后缀就是另一个名字。