我一直在研究国际化资源标识符,但有一件事困扰着我。
我的理解是,对于域名中的每个标签(xyzzy.plugh.com
具有三个标签,xyzzy
和plugh
)com
,执行以下过程以将其转换为 ASCII 表示,以便所有旧版软件都可以对其进行处理:
- 如果它仅由 ASCII 字符组成,则按原样复制。
- 否则:
- 首先我们输出
xn--
后跟所有 ASCII 字符(跳过非 ASCII)。 - 然后,如果最后一个字符不是
-
,我们输出-
以将 ASCII 与非 ASCII 分开。 - 最后,我们使用 punycode 对每个非 ASCII 字符进行编码,使它们看起来是 ASCII。
- 首先我们输出
那么我的问题是:我们如何区分以下两个 Unicode URI?
http://aa☃.net/
http://☃aa.net/
在我看来,这两个都将编码为:
http://xn--aa-nfh.net/
仅仅是因为整个标签的测序信息已经丢失。
还是我在规范中遗漏了什么?