天天看點

Java處理參數中帶特殊符号

使用get方式時參數中不能有特殊字元,如:,空格,%,#,&,=等等;尤其是一些圖檔帶有特殊字元,查詢圖檔url的時候

解決辦法:用URL轉義符替換。

下面列出如下:

URL 中+号表示空格 %2B

空格 URL中的空格可以用+号或者編碼 %20

/ 分隔目錄和子目錄 %2F

? 分隔實際的URL和參數 %3F

% 指定特殊字元 %25

#表示書簽 %23

& URL 中指定的參數間的分隔符 %26

= URL 中指定參數的值 %3D

這裡以http://localhost/getCode?url=www.baidu.com?channel=HY0649&type=02為例:

很好解決:前端傳遞參數時候encode一下此參數即可。我這邊在java模拟一下encode,再用encode後的參數發送請求

public static void main(String[] args) throws UnsupportedEncodingException {
        String url = "www.baidu.com?channel=HY0649&type=02";
        String encodeUrl = URLEncoder.encode(url, "UTF-8");
        System.out.println(encodeUrl);
    }
           

encode後的url參數輸出為:www.baidu.com%3Fchannel%3DHY0649%26type%3D02

或者把get方法改成post