国际化域名 Unicode ⇄ Punycode 互转:中文.中国 ⇄ xn--fiq228c.xn--fiqs8s,逐段拆解,支持邮箱,纯浏览器本地
- 本地处理
- 分类 编码加密
- 适合 快速检查小 payload、令牌、哈希和编码值。
所有转换都是这个标签页里跑的纯 JavaScript —— RFC 3492 的 bootstring 运算不调用任何服务器,你查的域名(包括还没注册的)不会被记录或发出。分享链接会把输入写进 URL 的 query string,所以涉及未公开品牌或内部主机名时,不要分享带这段输入的链接。
这个工具能做什么
一个双向的 Punycode / IDN(国际化域名)转换工具,把含非 ASCII 字符 的域名编码成 DNS 能识别的 ASCII 形式,也能反向解回原文。输入 "中文.中国"、"例え.jp" 或 "münchen.de",每个含非 ASCII 字符的 label 都会用 RFC 3492 bootstring 算法编码并加上 "xn--" 前缀,得到 "xn--fiq228c.xn--fiqs8s"、"xn--r8jz45g.jp"、"xn--mnchen-3ya.de";切换 方向,任何 "xn--" 段都会解回你最初输入的中文/日文/Unicode。纯 ASCII 的段原样保留,所以 "shop.中文.com" 只会改中间那一段。工具能识别邮箱 地址,粘 "张三@邮箱.中国",只转 "@" 后面的域名部分,本地名保持 不动。逐段拆解面板会列出每一段对应哪个 xn-- 形式,多级域名一眼看清 哪里出了问题;多行输入可以一次批量处理一整列主机名。完整的 RFC 3492 算法(bias 自适应、emoji 等增补平面字符的代理对处理、溢出保护)全部 从零实现,完全在你的浏览器标签页里运行,不联网、不记录你查过哪些 域名,这一点在你排查还没注册的域名、或者怀疑是钓鱼的相似域名时尤其 重要。
工具细节
- 输入
- 文本
- 页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
- 输出
- 即时结果 + 复制
- 结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
- 隐私
- 浏览器本地处理
- 主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
- 保存 / 分享
- 可分享链接状态
- 关键设置会进入 URL,复制链接后别人能复现同一组参数。
- 性能预算
- 首屏 JS ≤ 10 KB
- 没有声明 WASM 依赖,适合快速打开和移动端使用。
- 适用场景
- 编码加密 · 程序员
- 分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。
怎么用
-
1. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
Punycode / IDN 域名转换 适合怎么用
适合做浏览器本地的编码、解码、哈希、令牌检查和可分享转换。
适合编码任务
- 快速检查小 payload、令牌、哈希和编码值。
- 把值整理好再放进 API、URL、文档或客服工单。
- 输入可能敏感时,尽量避开账号型在线工具。
编码检查项
- 真实密钥不要随便粘贴,除非确认能接受本地浏览器处理。
- 分享结果前确认这个操作是否可逆。
- 哈希值要核对算法和大小写是否符合对方要求。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
注册中文域名后,拿到 xn-- 形式填进 DNS 面板
你从注册商买了 "中文.中国",但 DNS 托管、CDN、TLS 证书签发方都要 ASCII 形式。流程:在编码方向粘 "中文.中国",读出 "xn--fiq228c.xn--fiqs8s",复制进 A 记录、CDN 源站、证书申请的 SAN 列表。逐段拆解会确认二级 label 和 ".中国" 顶级域是分开各自编码的, 这正是注册局期望的;某一段写错会让解析悄无声息地挂掉,连个 报错都没有。
排查一个可能是同形字攻击的可疑链接
一封钓鱼邮件链向一个显示为 "xn--pple-43d.com" 的主机,肉眼读不出 来。在解码方向粘进去,解出 "аpple.com",里面是西里尔字母 "а" (U+0430),不是拉丁 "a"。这个解出来的字符就是这条链接冒充 Apple 的铁证。再配合 unicode-character-inspector 确认确切码点,然后举报 或封禁这个域名。因为这是 100% 浏览器本地的工具,你不必把攻击者的 URL 交给任何第三方服务器。
通过旧 SMTP 中继给国际化域名发信
你的应用要投递到 "support@почта.рф",但下游中继比 SMTPUTF8 还老, 会拒绝非 ASCII 域名。把完整地址粘进编码方向,只有域名会转,得到 "support@xn--80a1acny.xn--p1ai",本地名原样保留。把它填进信封收件 人,旧中继就收了。识别邮箱的拆分逻辑帮你省掉手动按 "@" 切分、 顺手把本地名也错编进去的坑。
部署前审计一个多级国际化主机名
你的预发主机是 "测试.shop.中文.com",上线通配证书和 CORS 白名单 之前,你得先搞清楚哪些 label 会变 xn--、哪些保持 ASCII。粘进去, 打开逐段拆解,你看到 "测试 → xn--0zwm56d"、"shop → shop"、 "中文 → xn--fiq228c"、"com → com"。现在你知道源站、CORS 策略、 HSTS preload 条目到底该用哪个 ASCII 主机名了,各处配置里 Unicode 形式和 ASCII 形式混用,是 "Chrome 里好使、curl 里报错" 这类 bug 的常见来源。
批量转换一堆国际化域名填进配置文件
你要把五十个国际化品牌域名的白名单迁进 nginx 的 server_name 列表, 那必须是 ASCII。把五十个一行一个粘进编码方向,一次性把 xn-- 那列 复制出来。每行独立转换,某一行格式错了会就地显示行内错误,而不是 把整批都搞坏,这样你只改那一行,不用重跑全部。
常见踩坑
把整个域名当成一个字符串去编码。Punycode 是逐 label 工作的,你必须按 "." 切分,每个 label 单独编码。把 "münchen.de" 当一整块编出来是乱码;点是 label 边界,不是要编码的字符。这个工具会自动帮你按 "." 切分。
忘了 "xn--" 大小写不敏感、但编码载荷不是随便能改的。你不能把 "xn--" 后面那段转大写或手动改,"xn--MNCHEN-3YA" 和 "xn--mnchen-3ya" 解出来一样是因为 DNS 大小写不敏感,但改动载荷里任何一个字符(比如末尾 "3ya")会得到不同或非法的域名。永远用真正的编解码器走一遍,绝不手改 ACE 字符串。
注册前跳过 UTS-46 归一化。输入 "MÜNCHEN.DE" 直接编码,得到的结果技术上合法但不规范;注册商会先转小写、做 NFC 归一化,所以你拿到的 xn-- 可能跟实际注册的那个不一样。对任何打算注册的域名,先归一化(转小写 + NFC)再编码。
隐私说明
整个 RFC 3492 编解码器(编码、解码、bias 自适应、代理对处理) 都是在你浏览器标签页里跑的纯 JavaScript。你输入的域名不会发到任何 服务器,没有打点记录你转过哪些主机,也不做任何日志。这一点对这个 工具尤其重要:有人会把疑似钓鱼的域名、还没注册的域名粘进来,这两 类都不该泄露。唯一要留意的是分享链接,它会把当前输入写进 URL 的 query string,所以你把含有未公开品牌域名或内部主机名的 "分享" 链接 粘到聊天或邮件里时,对方服务器的访问日志会留下记录。涉及敏感主机 时,手动复制结果,别分享 URL。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。