URL編碼,空格和+


下表中列出了一些URL特殊符號及編碼 

+ URL 中+號表示空格 %2B
空格 URL中的空格可以用+號或者編碼 %20
/ 分隔目錄和子目錄 %2F
? 分隔實際的URL和參數 %3F
% 指定特殊字符 %25
# 表示書簽 %23
& URL 中指定的參數間的分隔符 %26
= URL 中指定參數的值 %3D

 

很容易理解字符/ ? % # & =是url的保留字符,/是地址分隔符,?后面接參數串,#表示書簽,&參數間分隔符,=指定參數值,
如果參數值,參數名或者地址里面里有上述字符需要轉義,形式是%+十六進制數字的形式,所以%也是保留字符。

空格其實可以不用作為保留字符的,但是各種原因吧,可能為了以后考慮,也要作為保留字符,參數里有空格的話需要轉義,轉移值是%20,
麻煩就在於application/x-www-form-urlencoded可以把空格轉移成+,那么如果參數值里確實含有+怎么辦?所以+也要作為保留字符。

如果空格和其他保留字符一樣都轉義成%XX的型式就沒多那么多歧義了。

URLEncoder.encode會把空格轉成+,有些人再做一次replaceAll(“\\+”, “%20″),將空格強制轉成%20。

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

 

參考:

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

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

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM