我想知道xn--(域名)-66b.com在域中的含义。例如,我用ñ。
购买了diseñolatinoamericano.com在mozilla中,http://xn--diseolatinoamericano-66b.com/也出现在Facebook上我无法链接任何内容。
谢谢!
答案 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
)。