Punycode 与 IDN 转换器
在你的浏览器中,逐个标签地在国际化域名与 Punycode(xn--)之间相互转换。你粘贴的域名都留在你的设备上。
Punycode / IDN 转换器完全在你的浏览器中运行。你输入或粘贴的域名和 URL 都在你的设备上,用内置的 RFC 3492 实现完成转换,绝不会上传到 ArrayKit。
打开 URL 编码器 / 解码器
关于 Punycode 转换器
Punycode / IDN 转换器会把国际化域名转换成浏览器和 DNS 实际使用的 ASCII 形式——并可反向还原。输入一个 Unicode 主机名,例如 münchen.de、例え.テスト,或一个 emoji 域名,它会用 RFC 3492 Punycode 对每个标签进行编码,仅为需要的标签加上 xn-- 前缀。切换方向即可粘贴一个 xn-- 域名,读出它所代表的、对人友好的 Unicode。它逐个标签地工作,因此子域名、ASCII 顶级域、端口和路径都会原样直接通过。它在识别同形异义钓鱼、注册 IDN、调试 TLS 证书或邮件主机,以及查看一个经 Punycode 编码的链接真正指向何处时都很好用。每次转换都在你的设备上运行——你粘贴的域名绝不会被上传。
功能特性
- 双向转换:Unicode → ASCII(xn--)以及 ASCII → Unicode
- 逐个标签地编码整个域名,仅在需要处添加 xn--
- 原样传递子域名、端口、路径和查询字符串
- 手工实现的 RFC 3492 Punycode,与 DNS 和浏览器的输出完全一致
- 通过完整的码点处理,支持每一种文字系统以及星平面的 emoji 域名
- 揭示隐藏在 xn-- 前缀之后的同形异义和相似外观域名
- 当 xn-- 标签格式错误或被截断时给出清晰的错误
- 完全在你的浏览器中运行——粘贴的域名绝不会离开你的设备
如何使用 Punycode 转换器
- 保持选中「Unicode → ASCII」以编码国际化域名
- 输入或粘贴一个域名,例如 münchen.de 或 例え.テスト
- 从输出窗格复制 ASCII 的 xn-- 域名
- 切换到「ASCII → Unicode」,粘贴一个 xn-- 域名将其读回
示例
输入
münchen.de
输出
xn--mnchen-3ya.de
只有非 ASCII 的「münchen」标签会变成 xn--mnchen-3ya;.de 顶级域保持不变。
常见错误与故障排除
- 整个域名都被加上了 xn-- 前缀,连 .com 也是。 — 每个标签都独立编码。像 com 或 www 这样的纯 ASCII 标签保持不变,因此只有包含非 ASCII 字符的标签才会获得 xn-- 前缀。
- 解码一个 xn-- 域名时显示「invalid digit」或类似错误。 — xn-- 之后的 Punycode 载荷格式错误或被截断。请原样粘贴完整的标签;xn-- 标签只使用字母 a–z 和数字 0–9。
- 两个域名在屏幕上看起来完全相同,但解析结果不同。 — 这是一次同形异义攻击——拉丁字母和西里尔字母可能看起来相同。把两者都转换为 ASCII,对比它们真正的 xn-- 形式即可区分。
- 转换后端口或路径似乎消失了。 — 只有主机名会被变换。请包含完整的字符串(host:port/path),端口、路径和查询会原样通过。
常见问题
- 什么是 Punycode,域名为什么要用它?
- Punycode(RFC 3492)仅使用 DNS 允许的 ASCII 字母、数字和连字符来表示 Unicode 域名标签。国际化标签经过编码并加上 xn-- 前缀,因此 münchen.de 在网络上以 xn--mnchen-3ya.de 的形式传输。
- 域名上的 xn-- 前缀是什么意思?
- xn-- 是 IDNA 的「ACE」(ASCII 兼容编码)前缀。它标记一个标签,其余字符是经 Punycode 编码的 Unicode 字符串,告诉浏览器和解析器将其解码还原为原始字母以供显示。
- 为什么我的域名只有一部分被转换成 xn--?
- 转换是逐个标签进行的。仅由 ASCII 字符组成的标签(如 www 或 com)本就符合 DNS,会保持原样;只有包含非 ASCII 字符的标签才会被 Punycode 编码并加上 xn-- 前缀。
- 它能帮我识别同形异义的钓鱼域名吗?
- 可以。来自不同文字系统的相似字母会让一个假域名看起来像真的。把它编码为 ASCII 会暴露出各不相同的 xn-- 形式,因此用西里尔字母「а」写成的 аpple.com 就不再看起来像 apple.com。
- 转换器会把我的域名转为小写或应用 IDNA nameprep 吗?
- 不会。它执行纯粹的 Punycode 转码并精确保留你的标签,因此先编码再解码会返回原始文本。它不应用 IDNA 的大小写折叠、规范化或校验。
- 它能处理 emoji 域名以及带端口或路径的 URL 吗?
- 可以。emoji 和其他星平面字符都能正确编码——💩.la 会变成 xn--ls8h.la——完整 URL 中的任何协议、端口、路径或查询都会原样通过,而只有主机名标签会被转换。
相关工具
全部 ArrayKit 工具