xn--在域名上,这意味着什么?

时间:2012-03-15 16:51:05

标签: dns

我想知道xn--(域名)-66b.com在域中的含义。例如,我用ñ。

购买了diseñolatinoamericano.com

在mozilla中,http://xn--diseolatinoamericano-66b.com/也出现在Facebook上我无法链接任何内容。

谢谢!

3 个答案:

答案 0 :(得分:36)

它是IDNA编码的结果;即converting your unicode domain name到其ASCII等价物,必须以DNS完成,不能识别unicode。

xn--说“随后的所有内容都是编码 - unicode”。

答案 1 :(得分:23)

Punycode用于Internationalize Domain Names in Applications

来自1

  

Punycode用于编码标签   应用程序中的国际化域名(IDNA)框架等   这些域名可以用ASCII字符集表示   允许在Internet的域名系统中使用。编码语法   在IETF文档RFC 3492中定义。

来自2

  

国际化应用程序中的域名(IDNA)是一种机制   2003年定义的用于处理包含的国际化域名   非ASCII字符。这些名字都是拉丁字母   变音符号(ñ,é)或用不用的语言或脚本编写   使用拉丁字母:阿拉伯语,韩语,平假名和汉字   实例。虽然域名系统支持非ASCII   字符,电子邮件和Web浏览器等应用程序限制了   可用作域名的字符,例如a   主机名。

答案 2 :(得分:0)

示例中 66b(即最后一个 - 之后的字符串)的(简化)语义是:“将 diseolatinoamericano 中的光标向右移动 4 个字符并插入一个ñ”。更大的代码 76b(小端)意味着再移动一个字符,因此:

$ idn2 -d xn--diseolatinoamericano-76b
diseoñlatinoamericano

。如果你进一步增加你得到的代码:

-76b -> diseoñlatinoamericano
-86b -> diseolñatinoamericano
-96b -> diseolañtinoamericano
-b7b -> diseolatñinoamericano
-c7b -> diseolatiñnoamericano
-d7b -> diseolatinñoamericano
-e7b -> diseolatinoñamericano
-f7b -> diseolatinoañmericano
...
-m7b -> diseolatinoamericanño
-n7b -> diseolatinoamericanoñ

导致 ñ 的位置进一步向右移动。

在此之后,再次增加代码会将插入位置重置为字符串的开头,并将要插入的字符的代码点增加一。 ñ 的代码点为 241,下一个是 ò,所以:

-o7b -> òdiseolatinoamericano
-p7b -> dòiseolatinoamericano
...

可以在 rfc3492 中找到确切的细节(例如为什么必须跳过上面的 -a6b)。