如果我们输入firefox或chrome
它需要我们
的镜像我不明白的是unicode雪人可以解码为xn--n3h
的规则,它看起来不像utf-8或urlencoding。
我想我在python3中找到了一个提示,因为:
>>> '☃'.encode('punycode')
b'n3h'
但我仍然不理解xn--
部分。域名如何国际化,标准是什么?这些内容记录在哪里?
答案 0 :(得分:4)
它使用名为Punycode的编码方案(正如您已经从Python测试中发现的那样),能够以纯ASCII格式表示Unicode字符。
包含Unicode字符的每个标签(由点分隔,因此get.me.a.coffee.com
有五个标签)在Punycode中编码,并以字符串xn--
为前缀。
标签编码首先复制所有ASCII字符,然后附加编码的Unicode字符。 Unicode字符始终位于标签中的最终-
之后,因此如果需要,可在ASCII字符后添加一个。
更多细节可以在w3网站的this page和RFC 3987中找到。有关Punycode如何实际编码标签的详细信息,请参阅the Wikipedia page。