Punycode

Posted 逍遥帝君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");

 

以上是关于Punycode的主要内容,如果未能解决你的问题,请参考以下文章

nginx中文域名配置

Node.js权威指南 (12) - Node.js中的其他模块

IIS 7.5绑定中文域名转码启动站点报“值不在预期的范围内”

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js