是否有必要在HTML中的URL中编码空格?

时间:2014-12-09 08:42:59

标签: html url encoding uri

根据RFC3986:

  reserved    = gen-delims / sub-delims

  gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

  sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="

所以这里不需要空格编码。

只有附录C讨论了空白,但只讨论了所放置的URI。在纯文本中,可以使用空格分隔不同的URL。如果置于src属性中,则情况并非如此。

然而,几乎所有关于“url编码”的教程都是通过告诉%20编码空间来开始的。 (或+或两者的混合组合或......)

1 个答案:

答案 0 :(得分:2)

空间不是URI中的保留字符,因为URI中没有空格。

如果您有一个包含空格的标识符,则必须在将该空格放入URI时对该空间进行编码。编码不满足HTML语法,它符合URI的标准。

相关:Is a URL allowed to contain a space?

如果在HTML代码中的URI中使用空格,则浏览器必须对空间进行编码,以便您使用URI来请求任何内容。这只是浏览器保护您自己,AFAIK所有当前的浏览器都这样做,至少在大多数情况下。正确地做它仍然比依赖浏览器中的错误纠正更好。