url转码 java_javaurlencode转码
什么是URL轉碼
不管是以何種方式傳遞url時,如果要傳遞的url中包含特殊字符,如想要傳遞一個+,但是這個+會被url會被編碼成空格,想要傳遞&,被url處理成分隔符。
尤其是當傳遞的url是經過Base64加密或者RSA加密后的,存在特殊字符時,這里的特殊字符一旦被url處理,就不是原先你加密的結果了。
url特殊符號及對應的編碼:
|
符號 |
url中的含義 |
編碼 |
|
+ |
URL 中+號表示空格 |
%2B |
|
空格 |
URL中的空格可以用+號或者編碼 |
%20 |
|
/ |
分隔目錄和子目錄 |
%2F |
|
? |
分隔實際的URL和參數 |
%3F |
|
% |
指定特殊字符 |
%25 |
|
# |
表示書簽 |
%23 |
|
& |
URL中指定的參數間的分隔符 |
%26 |
|
= |
URL中指定參數的值 |
%3D |
URLEncode和URLDecode
接受參數案例tranIndex
|
@RestController public class TranController { // 接受客戶端參數 @RequestMapping(“/tranIndex”) public String tranIndex(String name) { System.out.println(“name:” + name); return name; } } |
客戶端訪問結果
傳入+參數變為了空格。
解決辦法:將+變為%2B
Java代碼處理轉碼
URLEncoder.encode和decode
|
String encode = URLEncoder.encode(“1+1”, “UTF-8”); String decode = URLDecoder.decode(encode, “UTF-8”); System.out.println(“encode:” + encode + “,decode:” + decode); |
Http接口參數編碼處理
|
String url = “http://127.0.0.1:8080/tranIndex?”; // 參數轉碼 String strParam = “name=” + URLEncoder.encode(“1+1”, “utf-8”); String newUrl = url + strParam; String result = HttpClientUtils.httpGet(newUrl); System.out.println(“result:” + result); |
總結
以上是生活随笔為你收集整理的url转码 java_javaurlencode转码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 回答一位朋友关于 SAP SRM 行业
- 下一篇: 深入理解 SAP Fiori Eleme