5

是否可以在子域中使用 UTF-8?如果是这样,哪些字符是允许的,不能混合编码的东西是如何工作的?

我尝试过 RTFM,但 Google 帮不上什么

4

1 回答 1

3

子域没有什么特别之处。给定的域名foo.example.com是标签的有序列表(foo, example, com)。因此,您可能想知道是否可以在给定标签中使用 UTF-8。

低级答案是标签定义为:

<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<let-dig> ::= <letter> | <digit>
<letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case
<digit> ::= any one of the ten digits 0 through 9
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | "-"

这意味着您只能[-a-zA-Z0-9]在标签中找到。

但是,IDNA可用于对 Unicode 字符进行编码。简而言之,包含其他字符的标签使用: 编码"xn--" + punycode(nameprep(label))

至少在限制方面:

  • for 字符不能在 IDN 标签中(U+002E、U+3002、U+FF0E、U+FF61)。
于 2011-03-16T13:29:01.003 回答