servlet中出现乱码的几种情况
get请求通过url进行传参
servlet处理get请求的时候,数据到servlet前就已经被tomcat进行编码了,在tomcat8以前,tomcat的内置编码是iso8859,而中文汉字是无法被iso8859进行编译的,所以就出现了乱码
这个时候我们可以通过字节流进行转码
//从url后面去参数
String jsonData = request.getParameter("jsonData");
//因为tomcat默认编码为iso8859,所以使用字节的方法进行重新转码(get请求在url上就已经进行过编码了)
jsonData = new String(jsonData.getBytes("ISO8859-1"), "UTF-8");
当然假如你使用的是tomcat8或者以上的版本,那么就不用处理,因为8以后的版本都默认是utf-8
响应到页面时候的乱码
当servlet处理完业务逻辑以后,需要将一些数据返回到页面上,此时也会出现乱码,可以通过设置ContentType进行处理
response.setContentType("text/html;charset=utf-8");
psot接收request对象时候的乱码
这种情况设置request对象的CharacterEncoding编码格式即可
request.setCharacterEncoding("UTF-8");
常见的就这几种