解决post请求乱码问题

 

方式一:
//编码
// String encodeUsername = URLEncoder.encode(username, "iso-8859-1");
//解码
// username = URLDecoder.decode(encodeUsername, "utf-8");
//方式二:
//编码
// byte[] bytes = username.getBytes("iso-8859-1");
//解码
// username = new String(bytes, "utf-8");
//方式二变为一行代码
username = new String(username.getBytes("iso-8859-1"), "utf-8");

注意:以上代码是可以解决post请求,可是如果换成get请求又会出现乱码。因为Tomcat8已经对于get请求处理了乱码问题。换句话说get请求方式我们拿到的已经是正确的数据了,如果在使用iso-8859-1编码,然后使用utf-8解码,又会导致乱码。所以我们可以使用另一种方式来解决post乱码。即使用request对象中的方法:setCharacterEncoding(String chasetName)

 

最终版:

1.解决post请求中文乱码问题

request.setCharacterEncoding("utf-8");

 

2.解决服务器response给浏览器时的乱码问题

response.setContentType("text/html;charset=utf-8");

 

posted @ 2021-08-05 19:52  shadow321  阅读(1334)  评论(0编辑  收藏  举报