相信大家在开发Web项目中都会遇到中文的请求乱码和响应乱码的情况,现在给大家梳理一下并提供解决方案。
1.为什么会出现乱码:
出现乱码的根本原因是浏览器和服务器的解码方式不一致引起的。所以我们统一编码方式就可以了。
而浏览器默认的解码方式为UTF-8,所以我们只要将服务器端的编码方式设置为对应的UTF-8就可以了。
2.解决方案
2.1 请求乱码(request)
get请求:
(1)找到并打开tomcat目录下的server.xml文件
(2)找到<Connector>标签,在之后加上 URIEncoding="UTF-8" 即可,注意有两个<Connector>标签,找下图对应的,别找错了。
(由于我的tomcat的端口号从8080改为了8088,所以大家找的时候还是按照port="8080" 找就可以了)
post请求:
这个容易解决,用服务器自带的设置编码方式就可以了 request.setCharacterEncoding("utf-8");
最好写在前面,即发出请求之前。
2.2 响应乱码(response)
response.setContentType("text/html;charset=utf-8"); 在发出响应之前加上即可。
至此,问题应该解决了!
初次写博客,有什么不对的地方还请各位看官不吝赐教。