这个问题来自Nginx群

Google了一轮,发现其实很简单

直接写中文域名是无法解析到正确的Server的 中文域名其实就是一个英文域名!! 中文域名 —(Punycode编码) –> 英文域名 而且,这是在浏览器实现的,你敲入 www.中文.com , 浏览器就转为 www.xn–fiq228c.com 进行访问,仅此而已!!

那Punycode编码是什么呢? 先看看Python如何调用: 尝试编码 www.坚果.com

'坚果'.decode('gbk').encode('punycode')

得到jfs419a,然后合成真正的URL www.xn–jfs419a.com – 这个域名还没启用的.

这个Punycode还是一个标准呢 http://rfc-ref.org/RFC-TEXTS/3492/

当然还得说说中文实现, 在Apache的HttpClient 4.x系列中就有,看源码

最新发现: JDK6中已经有相应的实现 java.net.IDN

另外贴一下 在线转换的地址 http://www.cnnic.net.cn/html/Dir/200310/291112.htm

所有,把中文域名转一下,按普通英文域名来配置就OK了!!

奉劝一句, 离中文域名越远越好!!!



blog comments powered by Disqus

Published

2011-04-17 18:36:30

Categories


Tags

Fork me on GitHub