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

Jep*_*ino 31 dns

我想知道xn--(domain)-66b.com在域中的含义.例如,我用ñ购买了diseñolatinoamericano.com.

而在mozilla,它似乎也在Facebook上http://xn--diseolatinoamericano-66b.com/我无法链接任何东西.

谢谢!

Ale*_* K. 37

它是IDNA编码的结果; 即你的Unicode域名转换为其对应的ASCII码,其必须做的DNS是不是Unicode意识.

xn--说"后面的一切编码Unicode格式".

  • @noddy 这绝对不是真的。当标准最终确定时,“xn--”前缀是**随机**选择的。请参阅http://www.ccwhois.org/mailarchive/cctld-discuss/vol05/0096.html 当然,您可以自由地人为地添加任何您想要的语义,但这肯定不是它的创建方式。 (5认同)
  • 仅供参考,xn 代表_扩展名称_。 (3认同)
  • 注意:ccwhois.org 对我来说已经关闭,但也许另一个合适的引用可能是 https://web.archive.org/web/20180530223920/http://www.atm.tut.fi/list-archive/ietf-announce /msg13572.html (2认同)

Jon*_*fer 25

这是Punycode,用于国际化应用程序中的域名.

1开始:

Punycode用于在应用程序中的国际化域名(IDNA)框架中对标签进行编码,使得这些域名可以在因特网的域名系统中允许的ASCII字符集中表示.编码语法在IETF文档RFC 3492中定义.

2开始:

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


Uwe*_*nig 9

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

\n
$ idn2 -d xn--diseolatinoamericano-76b\ndiseo\xc3\xb1latinoamericano\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
-76b -> diseo\xc3\xb1latinoamericano\n-86b -> diseol\xc3\xb1atinoamericano\n-96b -> diseola\xc3\xb1tinoamericano\n-b7b -> diseolat\xc3\xb1inoamericano\n-c7b -> diseolati\xc3\xb1noamericano\n-d7b -> diseolatin\xc3\xb1oamericano\n-e7b -> diseolatino\xc3\xb1americano\n-f7b -> diseolatinoa\xc3\xb1mericano\n...\n-m7b -> diseolatinoamerican\xc3\xb1o\n-n7b -> diseolatinoamericano\xc3\xb1\n
Run Code Online (Sandbox Code Playgroud)\n

导致的位置\xc3\xb1进一步向右移动。

\n

之后,增加代码再次将插入位置重置为字符串的开头,并将要插入的字符的代码点增加 1。\xc3\xb1代码点是 241,下一个是\xc3\xb2这样:

\n
-o7b -> \xc3\xb2diseolatinoamericano\n-p7b -> d\xc3\xb2iseolatinoamericano\n...\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n