Punycode 编码/解码

分类:编码 & 解码
Punycode,即域名代码,是一种表示 Unicode 码和 ASCII 码 的有限的字符集,其主要作用是用于 DNS 系统的编码及解码。本工具提供了字符串 Punycode 编码及解码功能。
工具介绍

Punycode 简介

Punycode 是域名代码的意思,它是一种表示 Unicode 码和 ASCII 码的有限的字符集。例如:中国 会被编码为 xn--fiqs8s。Punycode 是伴随着 IDNs(即国际化域名 Internationalized Domain Names)而来的,其主要目的是用于 DNS 系统的编码及解码,因为早期的 DNS 服务器解析域名时支持英文域名,为了兼容英文域名以外的其他字符,便诞生了 Punycode。

因此,一个浏览器能够支持中文域名,本质上是该浏览器支持 Punycode 自动转码。

关于 Punycode 的补充说明

  1. Punycode 不止支持中文编码(中文域名只是国际化域名中的一种),还支持其他非英文字符的域名。例如,带有抑声符的 ISO-8859-1 系列字符组成的域名。你可以看看 Köln (德国科隆)通过 Punycode 编码后会得到什么结果
  2. Punycode 编码标准在 RFC 3492 文档中规定,有兴趣的可自行查阅和深入了解。本工具提供了一个方便的图形界面,来执行 Punycode 的编码和解码

一些中文域名 Punycode 编码示例

下面是一些常见中文的 Punycode 的编码示例:

  • 百度.com,Punycode 编码后:xn--wxtr44c.com
  • 阿里巴巴.com,Punycode 编码后:xn--tsta8290bfzd.com
  • 在线工具.com,Punycode 编码后:xn--h6qp2l4pgel2b.com
  • 独特工具箱.org,Punycode 编码后:xn--h6qv61as5penag67a.org
  • 企鹅.com,Punycode 编码后:xn--hoq754q.com
  • 短视频.com,Punycode 编码后:xn--s7ys49avyk.com
  • 无敌快手.com,Punycode 编码后:xn--66tu6c4xd5q.com
  • 二进制.net,Punycode 编码后:xn--4kq22gwu8e.net
  • 我的订单.com,Punycode 编码后:xn--4krt65aznp32t.com
  • 包裹物流跟踪.cn,Punycode 编码后:xn--uir832deuddq2ahtf4ma.cn
  • 双十一.com,Punycode 编码后:xn--4gqw1k5l.com
  • 我爱你.top,Punycode 编码后:xn--6qq986b3xl.top
  • 西游记.四大名著.cn,Punycode 编码后:xn--s6wv59cerb.xn--eqr18do9bu51f.cn
  • 诺贝尔文学奖.org,Punycode 编码后:xn--1tsv1c5om61ado2c5ob.org
  • 北京.中国,Punycode 编码后:xn--1lq90i.xn--fiqs8s
  • 东南亚.asia,Punycode 编码后:xn--xhqvln9j.asia
  • 东京2020奥运会.com,Punycode 编码后:xn--2020-kd5fx3aewz25dj45i.com
  • 白宫.gov,Punycode 编码后:xn--3btz73d.gov
  • 多诺米.game,Punycode 编码后:xn--csso63fyuk.game
  • 华容道.org.cn,Punycode 编码后:xn--xkru9qi39b.org.cn
  • 香港TVB.com.hk,Punycode 编码后:xn--tvb-by5gj66p.com.hk

从上面的示例可以看到,经过 Punycode 编码之后的字符:

  • Punycode 编码结果都是以 xn-- 开头;
  • 如果被编码的字符带有数字或字母,编码后,数字和字母将跟在 xn-- 后面。例如,上面的 东京2020奥运会.com 编码后,结果是 xn--2020-kd5fx3aewz25dj45i.com,其中的 2020,是直接跟在 xn-- 后面的;

希望本工具能为你了解和使用 Punycode 提供一定的帮助。

附:什么是国际化域名

国际化域名(英语:Internationalized Domain Name,缩写:IDN),又称特殊字符域名,是指部分或完全使用特殊的文字或字母组成的互联网域名,包括法语、德语、阿拉伯语、中文、斯拉夫语、泰米尔语、希伯来语或拉丁字母等非英文字母,这些文字经多字节万国码编译而成。在域名系统中,国际化域名使用 Punycode 转换后并以 ASCII 字符串的形式表示。

国际化域名最初是由马丁·杜斯特在1996年12月提出;1998年,在新加坡国立大学教授陈定炜的指导下,Tan Juay Kwang 和 Leong Kok Yong 两位将其付诸实施。经过多次讨论和对比各种提案(Proposal)后,应用程序国际化域名被采纳为正式标准,并被用在许多顶级域名中。在 IDNA 中,国际化域名特指可以成功将 IDNA 转化为十进位制 ASCII 码的域名。

推动国际化域名落地的几个重要时间节点:

  • 2007年,互联网名称与数字地址分配机构开始测试非英语域名
  • 2008年3月,互联网工程任务组为更新现有 IDNA 协议,新成立了一个国际化域名工作组
  • 2009年10月, ICANN 通过在使用 IDNA 标准的互联网中成立国际化国家及地区顶级域
  • 2010年5月,第一个 IDN ccTLD 在域名系统根域中生效运行