不管是以何種方式傳遞url時,如果要傳遞的url中包含特殊字符,如想要傳遞一個+,但是這個+會被url會被編碼成空格,想要傳遞&,被url處理成分隔符。
尤其是當傳遞的url是經過Base64加密或者RSA加密后的,存在特殊字符時,這里的特殊字符一旦被url處理,就不是原先你加密的結果了。
url特殊符號及對應的編碼:
| 符號 |
url中的含義 |
編碼 |
| + |
URL 中+號表示空格 |
%2B |
| 空格 |
URL中的空格可以用+號或者編碼 |
%20 |
| / |
分隔目錄和子目錄 |
%2F |
| ? |
分隔實際的URL和參數 |
%3F |
| % |
指定特殊字符 |
%25 |
| # |
表示書簽 |
%23 |
| & |
URL中指定的參數間的分隔符 |
%26 |
| = |
URL中指定參數的值 |
%3D |
URLEncoder 類里面有encde,decode 方法,可以實現轉碼,解碼
String encode = URLEncoder.encode("1+1", "UTF-8");
String decode = URLDecoder.decode(encode, "UTF-8");
System.out.println("encode:" + encode + ",decode:" + decode);
