1. 程式人生 > >JAVA中URLEncoder函式對特殊字元不處理解決辦法

JAVA中URLEncoder函式對特殊字元不處理解決辦法

最近做登陸這一塊的介面,需要對接另外一家公司php的登陸介面,由於他們的賬號密碼包含了有特殊字元*,經過了很多的曲折,特記錄下來。
特殊字元*,在java中encode函式是不會進行轉碼處理。
    public static void main(String[] args) throws UnsupportedEncodingException {
        String string = URLEncoder.encode("*");
        LOG.info("*符號 ="+string);
    }  

如上圖所示,*字元在encode之後還是不變,而php那邊是會把特殊字元變為%2A,這個時候就需要我這邊做操作了。程式碼如下:

URLEncoder.encode(v).replace("*", "%2A");

replace可以把所有的*替換成%2A,這樣php那邊獲取的加密引數就是%2A,而不是特殊字元了。