根据RFC3986:
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
所以这里不需要空格编码。
只有附录C讨论了空白,但只讨论了所放置的URI。在纯文本中,可以使用空格分隔不同的URL。如果置于src
属性中,则情况并非如此。
然而,几乎所有关于“url编码”的教程都是通过告诉%20
编码空间来开始的。 (或+或两者的混合组合或......)
答案 0 :(得分:2)
空间不是URI中的保留字符,因为URI中没有空格。
如果您有一个包含空格的标识符,则必须在将该空格放入URI时对该空间进行编码。编码不满足HTML语法,它符合URI的标准。
相关:Is a URL allowed to contain a space?
如果在HTML代码中的URI中使用空格,则浏览器必须对空间进行编码,以便您使用URI来请求任何内容。这只是浏览器保护您自己,AFAIK所有当前的浏览器都这样做,至少在大多数情况下。正确地做它仍然比依赖浏览器中的错误纠正更好。