Punycode

Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用于DNS系统的编码
“中文域名”不被标准的解析服务器支持,需转化为Punycode码进行解析,例如“百度.中国”的转码为: xn--wxTr44c.xn--fiqs8S
目前,因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中文域名解析,所有中文域名的解析都需要转成Punycode码,然后由DNS解析Punycode码

其实目前所说的各种浏览器完美支持中文域名,只是浏览器中主动加入了中文域名自动转码,不需要再次安装中文域名转码控件来完成整个流程

                System.Globalization.IdnMapping idn = new System.Globalization.IdnMapping();
                var str = idn.GetUnicode("www.xn--1lq90i.cn.com.cn");
                var str1 = idn.GetUnicode("bn--xiaoyaodijun.com");//非中文域名解析不变
                var str2 = idn.GetAscii("www.北京.cn");

 

posted @ 2018-02-06 09:52  逍遥帝君  阅读(726)  评论(0编辑  收藏  举报