SpringBoot解决redirect参数中文乱码问题

代码如下:
&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();
        }
posted @ 2018-09-22 15:25  ergexy  阅读(4023)  评论(0编辑  收藏  举报