编码

Punycode / IDN 域名转换器

在可读的 Unicode 形式与 DNS 实际存储的 ASCII 兼容 Punycode(xn-- 前缀)形式之间转换国际化域名(IDN)。DevKitLab 会先归一化每个标签,再用 IDNA Punycode 算法对非 ASCII 标签编码,并逐标签展示转换明细,让你清楚看到域名的哪一段变成了 xn-- 标签。解码则反向进行:粘贴一串 xn-- 标签即可读回原始的 Unicode 域名。全部计算都在你的浏览器中完成,粘贴的域名不会离开当前页面。

  • 将 Unicode 域名编码为 ASCII 的 xn-- Punycode,并可反向解码
  • 支持多级标签域名,对纯 ASCII 标签保持原样不动
  • 按注册商与浏览器的预期归一化为 NFC 并转为小写
  • 逐标签展示明细,并标记出每一个国际化标签
  • 逐标签解码,单个损坏的 xn-- 标签不会拖垮其余部分
  • 完全在浏览器中运行,粘贴的域名永不上传
工具/Punycode / IDN 转换器
转换后的域名将显示在这里
转 ASCII
转换命令

功能简介

一款专注于国际化域名的转换器:把可读的 Unicode 域名转成 DNS 使用的 ASCII xn-- 形式,或把 xn-- 标签解码回它所代表的字符。它始终保持逐标签映射可见,无需安装,也绝不会把你粘贴的域名发送到服务器。

  1. 01

    编码与解码同屏完成

    在同一处把 Unicode 域名编码为 ASCII Punycode,或把 xn-- 标签解码回 Unicode,无需单独的转换步骤。选好方向后,结果与逐标签明细会随输入实时更新。

  2. 02

    整域、识标签的转换

    转换器按点号拆分域名,单独对每个标签编码或解码,对纯 ASCII 标签保持原样,因此 com、co、uk 等照常通过,只有国际化标签才会改变。

  3. 03

    NFC 归一化与大小写折叠

    编码前会先把输入归一化为 Unicode NFC 并转为小写——这正是注册商与浏览器处理域名的方式,因此得到的 xn-- 输出能与真实的 DNS 和证书工具相匹配。

  4. 04

    逐标签明细

    切换到标签视图,即可看到每个标签从源形式到转换形式的映射,并在每个确实变成(或来自)xn-- Punycode 的标签上标出 IDN 标记。

  5. 05

    稳健的逐标签解码

    解码会单独处理每个标签,因此单个损坏的 xn-- 标签会被标记出来,而不会悄悄破坏域名其余部分,让你可以放心粘贴从日志里取出的主机名。

  6. 06

    兼容浏览器接受的分隔符

    除句点外,CJK 文本中使用的表意全角句点等变体也都被视为标签分隔符,因此从东亚内容复制来的域名仍能正确拆分。

  7. 07

    一键互换复用

    把当前结果送回输入框并翻转方向,把“编码后再解码”的往返校验变成一次点击。

  8. 08

    纯本地处理

    编码、解码与明细全部在浏览器中运行。你粘贴的主机名和域名只留在本机,绝不会被上传。

如何使用

粘贴域名、选择方向、复制结果。一切随输入实时重算,无需另按转换按钮。

  1. 01

    在输入框中键入或粘贴域名——要编码就贴 Unicode 域名,要解码就贴 xn-- 的 Punycode 域名。

  2. 02

    把方向设为“转 ASCII”生成 xn-- Punycode,或设为“转 Unicode”把 xn-- 标签读回字符。

  3. 03

    在“域名”视图查看转换后的整域,或切到“标签”视图逐个核对每个标签。

  4. 04

    留意 IDN 标记,看清究竟哪些标签被国际化,以及它们是如何被改写的。

  5. 05

    复制输出,或用“互换”把结果按相反方向往返校验。

功能说明

该编码还是解码、结果该如何预期,取决于域名要去向何处。以下是关于转换行为的一些说明。

  • “转 ASCII”生成的 xn-- 形式,正是 DNS、TLS 证书、邮件路由和大多数 API 存储与比较域名所用的形式。
  • “转 Unicode”还原出便于阅读的名称,也就是浏览器地址栏对可信域名所显示的内容。
  • 只有含非 ASCII 字符的标签才会变成 xn-- 标签;com、www 等普通标签保持不变。
  • 输入会先归一化为 NFC 并转小写,因为域名不区分大小写,注册局也只存一种归一化形式。
  • 每个标签独立编码,因此一个域名可以混用国际化标签与普通标签,无需特殊处理。
  • 标签视图是确认长域名中哪一段承载国际字符的最快方式。
  • 解码遇到损坏的 xn-- 标签时会将其标出,而不会丢弃周围的其他标签。
  • “互换”可快速往返校验:编码、互换,再确认原始 Unicode 域名原样返回。

适合哪些场景

凡是国际化域名遇上只识 ASCII 的系统——DNS 记录、证书、邮件、日志与链接核对——都会用到 Punycode。

  1. 注册与配置 IDN

    把 Unicode 品牌或本地语言域名转成你要填入注册商、DNS 区域或主机面板的 xn-- 形式,再解码回去确认读起来无误。

  2. 签发与查看 TLS 证书

    生成证书颁发机构在 SAN 条目中所需的 ASCII xn-- 名称,或把证书中的 xn-- 名称解码出来,看清它所覆盖的可读域名。

  3. 排查邮件与 DNS 路由

    当 MX 记录、SPF 条目或邮件日志中出现你意料之外的 Punycode 形式时,在可读形式与 xn-- 形式之间互相转换。

  4. 读取日志中的主机名

    粘贴从服务器日志、代理记录或分析数据中复制来的 xn-- 主机名,读回它们所代表的真实国际化域名。

  5. 识别仿冒与同形异义域名

    解码可疑的 xn-- 域名,揭示其背后的 Unicode 字符——这正是同形异义钓鱼域名伪装成知名品牌的手法。

  6. 构建链接与跳转

    为无法正确处理原始 Unicode 的配置文件、跳转规则或 API 请求生成 ASCII 域名,同时保留可读名称用于展示。

  7. 测试工具的 IDN 支持

    生成成对的 Unicode 与 xn-- 域名,检验解析器、校验器或白名单在两种形式下如何处理国际化域名。

  8. 讲解 IDN 的工作原理

    实时展示 Unicode 域名到逐标签 xn-- 编码的映射,解释 DNS 如何让国际化名称保持 ASCII 兼容。

延伸阅读

Punycode 作用于整段域名标签;当你需要转义单个字符时,可使用 Unicode 编码解码 在文本与 Unicode 转义之间互转。若要处理地址的路径与查询部分而非主机, URL 编码解码 负责 URL 百分号编码;而要把完整地址拆成主机、路径和参数, URL 工具 可解析并重建 URL。如果你想从国际文本生成可读的 ASCII slug, Slug 生成器 能将其罗马化并清洗为 URL 安全形式。

使用建议

当输入是干净的域名、方向与数据相符时,转换才会精确。以下习惯能让编码与解码完全可逆。

  • 粘贴纯主机名而非完整 URL——去掉协议、端口、路径和查询串,只转换域名标签。
  • 让工具完成归一化:它会折叠大小写并应用 NFC,你无需自行转小写或预先归一化。
  • 在把名称复制进 DNS 或证书申请之前,用标签视图确认哪些标签变成了 xn--。
  • 把混用多种文字或使用罕见仿冒字符的解码结果视为同形异义警告,而非安全保证。
  • 用“互换”做往返校验:编码、互换,再确认原始 Unicode 域名原样返回。
  • 记住 ASCII 标签是有意保持不变的——若毫无变化,只是该标签没有需要编码的字符。
  • 处理完内部主机名后请清空面板;本地处理虽把数据留在本机,但输入会一直保留到你移除为止。

边界与注意事项

Punycode 是用 ASCII 书写域名的方式,而非校验或保护域名的手段。以下几条限制值得记住。

  • 对域名编码并不会注册它,也不会检查它是否存在——只是把名称改写成 ASCII 形式。
  • 转换器会应用 NFC 与大小写折叠,但不做注册商执行的完整 UTS-46 有效性校验,因此它能编码的名称仍可能在注册时被拒。
  • 只转换主机:请粘贴纯域名而非完整 URL,因为协议、路径和查询不会被 Punycode 编码。
  • 解码后的 xn-- 域名能显示其包含的字符,但无法判断这些字符究竟是正当品牌还是仿冒的同形异义名称。
  • Punycode 是编码而非加密——任何人都能把 xn-- 名称解码回去,它不隐藏任何信息。
  • 对于不是有效 Punycode 的标签,工具会将其标出而非臆测,因此损坏的 xn-- 字符串会报错,而不会返回误导性文本。

常见问题

关于 Punycode、国际化域名、xn-- 前缀、同形异义域名,以及它与 URL 编码区别的常见问题。

什么是 Punycode 和 xn-- 前缀?

Punycode 是一种仅用 DNS 允许的 ASCII 字母、数字和连字符来表示 Unicode 域名标签的编码。每个国际化标签都以 xn-- 开头,后接编码后的字符,因此 münchen 会变成 xn--mnchen-3ya。可读的 Unicode 名称与 xn-- 名称指向同一个域名。

如何把域名转成 Punycode?

把方向设为“转 ASCII”,粘贴你的 Unicode 域名,例如 münchen.de 或 你好.com。工具会随输入归一化并编码每个标签,对纯 ASCII 标签保持不变,并给国际化标签加上 xn-- 前缀。

如何把 xn-- 域名解码回 Unicode?

把方向设为“转 Unicode”,粘贴 xn-- 域名。每个标签都会单独解码,国际化标签会变回字符,而 com 等普通标签保持不变。

为什么只有域名的一部分发生了变化?

只有含非 ASCII 字符的标签才需要编码。com、www、co 这类标签本就符合 DNS 字符集,因此原样保留。标签视图会标出每一个确实变成(或来自)xn-- 的标签。

什么是同形异义(仿冒)域名?

同形异义域名使用看起来像常见拉丁字母的 Unicode 字符来冒充知名品牌。解码其 xn-- 形式可揭示名称背后的真实字符,因此核对可疑 xn-- 域名的 Unicode 是一种实用的反钓鱼检查。

Punycode 与 URL 编码有何不同?

Punycode 编码地址的域名(主机)部分,让 DNS 能存储国际化名称;而 URL 百分号编码处理路径与查询。二者作用于 URL 的不同部分,因此主机之后的内容请用 URL 编码器处理。

我的域名会被上传到什么地方吗?

不会。编码、解码与逐标签明细全部在你的浏览器中运行。你粘贴的任何内容都不会发送到服务器,因此内部主机名和域名都只留在本机。

更多相关工具

在工具合集内继续探索 Unicode 转义、URL 编码与 slug 生成。