URL编码,空格和+

下表中列出了一些URL特殊符号及编码 html

+ URL 中+号表示空格 %2B
空格 URL中的空格能够用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D

 

很容易理解字符/ ? % # & =是url的保留字符,/是地址分隔符,?后面接参数串,#表示书签,&参数间分隔符,=指定参数值,
若是参数值,参数名或者地址里面里有上述字符须要转义,形式是%+十六进制数字的形式,因此%也是保留字符。app

空格其实能够不用做为保留字符的,可是各类缘由吧,可能为了之后考虑,也要做为保留字符,参数里有空格的话须要转义,转移值是%20,
麻烦就在于application/x-www-form-urlencoded能够把空格转移成+,那么若是参数值里确实含有+怎么办?因此+也要做为保留字符。post

若是空格和其余保留字符同样都转义成%XX的型式就没多那么多歧义了。编码

URLEncoder.encode会把空格转成+,有些人再作一次replaceAll(“\\+”, “%20″),将空格强制转成%20。url

/?#&= ----> %XX,
%----->%XX,
space---->+或者%20
+------>%XXspa

 

参考:.net

https://blog.csdn.net/oqqquzi1234567/article/details/43409737code

https://blog.csdn.net/foxpeter/article/details/23475293orm

https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81htm

http://reason2003.iteye.com/blog/719682

相关文章
相关标签/搜索