Response出现中文乱码的原因和解决
很多人在用response.getWriter().write()的时候会出现中文乱码,出现这种问题的原因有以下几种:
- 浏览器中的编码和输出的文档的编码不同
- 有人通过request.getParameter()方法获取的信息,包含中文字符,也需要转码
针对这两种情况于如下解决方案
- 在代码中修改浏览器和输出文档的字符集
用response.setCharacterEncoding(“UTF-8”);设置文档的字符集
用response.setContentType(“text/html;charset=utf-8”);设置浏览器的字符集
name = new String(name.getBytes(“ISO-8859-1”),”utf-8”);修改某个字符串的字符集(万能解决方式) - 用户提交的数据包含中文
用request.setCharacterEncoding(“UTF-8”);
成功率比下面的方式高,但是效率低。
或者在tomcat的安装目录下的conf文件夹下的server.xml中
将以下代码
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"/>
最后这种方式可能成功率低,但是效率高。
以上就是解决中文乱码的方法,欢迎提问