如何在URL中对片段标识符中的空格进行编码

如何在URL中对片段标识符中的空格进行编码,url,syntax,rfc,fragment-identifier,Url,Syntax,Rfc,Fragment Identifier,在URL中的片段标识符中,如果一个空格在路径中编码为%20like,或在查询字符串中编码为+like?对于HTML页面,应采用百分比编码 根据和,片段标识符的格式取决于媒体类型。来自RFC 2396和RFC 3986: 片段标识符的语义由 上的检索操作可能导致的表示 主要资源。因此,片段的格式和分辨率是 取决于可能检索到的文件的媒体类型[RFC2046] 表示,即使仅当 URI被取消引用 从RFC 7320: 媒体类型定义(根据[RFC6838])应指定片段 与它们一起使用的标识符语法;必须提供

在URL中的片段标识符中,如果一个空格在路径中编码为
%20
like,或在查询字符串中编码为
+
like?

对于HTML页面,应采用百分比编码

根据和,片段标识符的格式取决于媒体类型。来自RFC 2396和RFC 3986:

片段标识符的语义由 上的检索操作可能导致的表示 主要资源。因此,片段的格式和分辨率是 取决于可能检索到的文件的媒体类型[RFC2046] 表示,即使仅当 URI被取消引用

从RFC 7320:

媒体类型定义(根据[RFC6838])应指定片段 与它们一起使用的标识符语法;必须提供其他规格 不在片段标识符中定义结构,除非 通过媒体类型定义显式定义一个以供重用

HTML5规范:

文档的指定部分是片段标识符(如果有)标识的部分。片段标识符映射到特定DOM节点的语义由定义文档使用的MIME类型的规范定义(例如,处理XML MIME类型的片段标识符由RFC7303负责)

对于HTML文档(和HTML MIME类型),必须遵循以下处理模型来确定文档的指定部分

  • 将URL解析器算法应用于URL,并让fragid成为结果解析URL的片段组件

  • 如果fragid是空字符串,则文档的指示部分是文档的顶部;在这里停止算法

  • 让fragid字节作为fragid解码百分比的结果。

  • 假设解码fragid是对fragid字节应用UTF-8解码器算法的结果。如果UTF-8解码器发出解码器错误,则中止解码器并跳转到标记为no decoded fragid的步骤

  • [……]
  • (强调矿山)

    对于XML文档,指定保留URI字符的语法

    其他媒体类型可能有不同的规则