Web项目中,出现中文乱码问题的解决办法


1.以post方法提交的表单数据中有中文字符时

  tomcat对请求数据默认采用ISO-8859-1字符集进行解码,request对象的getParameter()方法得到的字符串是以ISO-8859-1转换而来的,所以在获取请求参数值之前,调用setCharacterEncoding("UTF-8")方法,将请求的解码方式设定为UTF-8.注意:页面和浏览器发送请求也应一致使用UTF-8,通过jsp页面设置page指令的contentType属性,指定页面内容的编码格式如下

<%@ page contentType="text/html; charset=utf-8" %>

  contentType和pageEncoding的区别:contentType定义响应的资源类型,也可以包含jsp页面和响应内容的字符集;pageEncoding指定jsp文件的字符集及默认的contentType字符集.

 

2.以get方法提交的表单数据中有中文字符时

  采用get方法提交表单时,提交的数据作为查询字符串被附加到URL的末端发送到服务器,对于这部分数据,在服务器调用setCharacterEncoding()方法是不起作用的,我们需要在得到请求参数值后进行编码转换.

<%
    String userName = request.getParameter("userName");
    userName = new String(name.getBytes("ISO-8859-1"),"UTF-8");
%>

 

3.在Tomcat中设置字符集

  当表单提交get方法时,虽然可以通过构造一个新的String方式解决中文乱码问题,但是当获取多个参数值时,每个参数都进行重新编码,操作比较繁琐.所以可以通过在Tomcat中设置字符集的方式解决.

  方法:找到Tomcat安装路径下的子目录conf\server.xml文件,在<Connector>元素中添加URIEncoding属性,将值设置为"UTF-8"

                

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM