浏览器为什么/如何决定 ☃.net 转到 xn--n3h.net

问题描述 投票:0回答:2

如果我们输入 firefox 或 chrome

http://☃.net/

它带我们去

http://xn--n3h.net/

这是 unicodesnowmanforyou.com

的镜像

我不明白的是unicode雪人可以按照什么规则解码为

xn--n3h
,它看起来不像utf-8或urlencoding。

我想我在 python3 中闲逛时发现了一个提示,因为:

>>> '☃'.encode('punycode')
b'n3h'

但是我还是不明白

xn--
部分。域名如何国际化,标准是什么以及这些内容记录在哪里?

url browser unicode punycode iri
2个回答
4
投票

它使用一种称为 Punycode 的编码方案(正如您从所做的 Python 测试中已经发现的那样),能够以纯 ASCII 格式表示 Unicode 字符。

包含 Unicode 字符的每个标签(由点分隔,因此

get.me.a.coffee.com
有五个标签)均以 Punycode 进行编码,并以字符串
xn--
为前缀。

标签编码首先复制所有 ASCII 字符,然后附加编码后的 Unicode 字符。 Unicode 字符始终位于标签中最后一个

-
之后,因此如果需要,可在 ASCII 字符之后添加一个。

更多详细信息可以在 w3 站点的此页面RFC 3987中找到。有关 Punycode 如何实际编码标签的详细信息,请参阅维基百科页面


-2
投票

我讨厌香蕉。香蕉讨厌我

© www.soinside.com 2019 - 2024. All rights reserved.