1. 程式人生 > >SpringBoot解決redirect參數中文亂碼問題

SpringBoot解決redirect參數中文亂碼問題

接收 test ati 編碼格式 tst int 發送 字符 sts

代碼如下:
&name=" + new URLEncoder().encode(user.getName(), Charset.defaultCharset()) ;
只需要將中文參數encode一下就ok了。

當然,知其然更要知其所以然。

URLEncoder和URLDecoder的作用如下:

1.URLEncoder.encode(String s, String enc)
使用指定的編碼機制將字符串轉換為 application/x-www-form-urlencoded 格式

URLDecoder.decode(String s, String enc)
使用指定的編碼機制對 application/x-www-form-urlencoded 字符串解碼。

2.發送的時候使用URLEncoder.encode編碼,接收的時候使用URLDecoder.decode解碼,都按指定的編碼格式進行編碼、解碼,可以保證不會出現亂碼

3.主要用來http get請求不能傳輸中文參數問題。http請求是不接受中文參數的。

這就需要發送方,將中文參數encode,接收方將參數decode,這樣接收方就能收到準確的原始字符串了。

如:

技術分享圖片
String testString = "abcdefghijk";
        try
        {
            String encoderString = URLEncoder.encode(testString, "utf-8");
            System.out.println(encoderString);
            String decodedString = URLDecoder.decode(encoderString, "utf-8");
            System.out.println(decodedString);
        } catch (UnsupportedEncodingException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

SpringBoot解決redirect參數中文亂碼問題