RFC 3986 指定 URI 的主机组件是“不区分大小写”的。但是,它没有指定 UCS 或 UTF-8 字符中“不区分大小写”的含义。
RFC 中给出的示例(例如“ <HTTP://www.EXAMPLE.com/
> 等同于<http://www.example.com/
>”)允许我们推断“不区分大小写”意味着字符 AZ 至少被认为等同于 UTF-8 字符集中它们前面的字符 32,即AZ 但是,没有提到应该如何处理超出此范围的字符。因此,鉴于www.OLÉ.com的非编码、非规范化注册名称,我看到 RFC 允许的三种潜在规范化形式:
- 小写到 www.olé.com然后百分比编码到 www.ol%E9.com
- 仅小写 AZ 字符到www.olÉ.com,然后百分比编码到 www.ol%C9.com
- 百分比编码为 www.OL%C9.com,然后将非百分比编码部分小写为 www.ol%C9.com,产生与 2 相同的结果。
所以问题是:哪个是正确的?如果是 case 1.,什么定义了哪些字符被认为是大写的,哪些被认为是小写的(哪些字符没有大小写)?