国际化域名(IDN)和 Punycode 互转:中文.测试 ↔ xn--fiq228c.xn--0zwm56d。DNS 底层只认 ASCII,中文 / 日文 / emoji 域名要转成 xn-- 形式才能解析。内置 RFC 3492 实现,不依赖外部库。
xn-- 串。xn--,ASCII 标签原样保留,点号(含 。.。)保留。xn-- 标签还原成文字。xn-- 就解码,否则编码。| 原文 | Punycode |
|---|---|
中文.测试 |
xn--fiq228c.xn--0zwm56d |
münchen.de |
xn--mnchen-3ya.de |
😀.tv |
xn--e28h.tv |
encode 后加 xn-- 前缀,xn-- 标签 decode 还原,ASCII 标签和分隔符原样保留。不做 IDNA 的大小写 / 兼容性映射(如全角转半角),需要时先自行规范化。аpple.com(首字母是西里尔 а)会转成 xn--pple-43d.com —— 看着像 apple 实际不是。核对可疑链接时把域名贴进来解码 / 编码看清楚。相关:URL 解析 · URL 编码 · Unicode 编码 · WHOIS 查询 · IP 查询。
只做域名字符串转换,不查 DNS、不验证注册;注意 homograph 仿冒域名。