关于Response出现中文乱码的解决方案

Response出现中文乱码的原因和解决

很多人在用response.getWriter().write()的时候会出现中文乱码,出现这种问题的原因有以下几种:

  1. 浏览器中的编码和输出的文档的编码不同
  2. 有人通过request.getParameter()方法获取的信息,包含中文字符,也需要转码

针对这两种情况于如下解决方案

  1. 在代码中修改浏览器和输出文档的字符集 用response.setCharacterEncoding(“UTF-8”);设置文档的字符集 用response.setContentType(“text/html;charset=utf-8”);设置浏览器的字符集 name = new String(name.getBytes(“ISO-8859-1”),”utf-8”);修改某个字符串的字符集(万能解决方式)
  2. 用户提交的数据包含中文 用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"/>

最后这种方式可能成功率低,但是效率高。 以上就是解决中文乱码的方法,欢迎提问

经验分享 程序员 微信小程序 职场和发展