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

相關文章
相關標籤/搜索