在 URL 中的片段标识符中,空格应该被编码为像路径中的
%20
还是像查询字符串中的 +
?%20
还是像查询字符串中的 +
?HTML5规范仅指定百分数编码:
文档的指定部分是片段标识符(如果有)所标识的部分。将片段标识符映射到特定DOM节点的语义由定义文档使用的MIME类型的规范定义(例如,XML MIME类型的片段标识符处理由RFC7303负责)。
对于HTML文档(和HTML MIME类型),必须遵循以下处理模型以确定文档的指定部分。
- 对URL应用URL解析器算法,并让fragid成为解析后URL的片段组件。
- 如果fragid为空字符串,则文档的指定部分为文档的顶部;在此处停止算法。
- 让fragid字节成为百分数解码的结果。
- 将fragid字节应用UTF-8解码算法后得到解码的fragid结果。如果UTF-8解码器发出解码器错误,则中止解码器并跳转到标记为“无解码fragid”的步骤。
- [...]
(强调我)
对于XML文档,RFC 7303指定了XPointer Framework的语法,该语法还要求对保留的URI字符进行百分比编码。
其他媒体类型可能有不同的规则。