请输入中文域名: |
---|
Punycode编码: |
中文域名转码,即将中文域名转化为punycode码。
Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码。 "中文域名"后缀不被标准的解析服务器支持,需转化为punycode码进行解析。
例如:主机庙.中国 的转码为:经过转码后变成了: xn--tiqw21blpg.xn--fiqs8s
目前,因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中文域名解析,所有中文域名的解析都需要转成punycode码,然后由DNS解析punycode码。其实目前所说和各种浏览器完美支持中文域名,只是浏览器软里面主动加入了中文域名自动转码,不需要原来的再次安装中文域名转码控件来完成整个流程。
中文域名分为两类:
1、一类是域名后缀为英文字母的国际中文域名和别国中文域名,比如:中文.com,中文.net,中文.biz,中文.cc,中文.hk,中文.tm,中文.tv,中文.tw;
2、一类是域名后缀为中文的纯中文国内中文域名,比如:中文域名.中国,中文域名.公司,中文域名.网络;
中文域名在解析的时候,需要先转换为 xn--fiq228c.com或xn--fiq228c.cn形式的ASCII码,这种编码称为PunyCode。纯中文域名不被标准的解析服务器支持,要实现对这种纯中文域名的正确访问,ISP需要做相应的修改,以便能够正确解析中文域名。同时CNNIC也提供了专用服务器,用户只要将浏览器的DNS设置指向这台服务器,它同样可以完成对纯中文域名的正确解析。另外,考虑到现在有些ISP还没有做修改,而有些用户又不方便将DNS设置指向CNNIC提供的服务器,纯中文域名会被加上.cn后缀,即对每一个纯中文域名同时有两种形式:纯中文域名和纯中文域名.CN, 如:"中文域名.网络"和"中文域名.网络.CN"。这样即使ISP还没有做相应的修改,用户也可以正确使用中文域名。
英文域名在IIS或Apache中的虚拟主机设置,可以直接使用英文域名,如webmasterhome.cn。
中文域名在IIS或Apache中应如何设置主机头呢?如"主机庙.com",
答案是:在进行设置之前要先把中文域名转化成为PunyCode编码,然后在主机头设置里面填上中文域名所对应的PunyCode编码(xn--1jq649i9ja501g.com)便可。
新的国际化域名的标准在网域名称编码上,为了保留向下兼容性及不影响现有的应用程序协议,因此将多国语言域名转成ASCII编码,而这种编码称为『punycode』。
因为经过 Nameprep处理过的国际化域名是以 Unicode 序列的形式表示的。但现有的 DNS系统只支持用 ASCII字符表示的域名,所以要对 Unicode 序列进行 ACE (ASCII-compatible encoding) 编码,把 Unicode序列表示的域名转换成 ASCII 字符串表示的ACE 域名。
PunyCode是一种专为国际化域名而设计的高效ACE 编码方式。它可以在Unicode序列和ASCII 字符串之间进行唯一的和可逆的转换。转换的过程中,Unicode 序列中的ASCII字符保持不变,国际化字符则用字母和数字来表示。它的实质是一种用数量有限的基本字符(字母和数字)来唯一地表示大字符集(Unicode)中的字符的通用算法。域名中的字符,包括 ASCII 码和 Unicode 码,都是作为整数进行处理。
PunyCode则是将一个经过Nameprep处理过的IDN,从一个8位的编码的形式转换为7位编码的形式。目前Internet DNS一向是7位ASCII编码的环境,经过这个PunyCode转码程序,便将IDN从一个8 位的IDN转换为与现有DNS环境兼容的编码。
在DNS服务器方面,需要将IDN以PunyCode的编码形式来设定。因为PunyCode本身就是一种7位的编码,与ASCII编码完全兼容,所以可适用设定于目前所有可用的DNS版本, 也就是说可以不需要为了设定PunyCode而重新安装BIND新版本。但是若是需要使用DNAME指令来设定资源记录(Resource Record),则需先提升为BIND9的版本。
Nameprep 是“A Stringprep Profile for Internationalized Domain Names (IDN)”,它描述了如何准备一个多语种域名,包括对一个域名字段进行映射、正规化以及禁止性过滤等等操作。