之前在帮忙做一个项目的时候,用的是Eclipse+Tomcat,统一用的是UTF-8编码格式,发现从前台传入的中文参数到后台老是出现乱码(只有我才出现了错误,其他成员没有)。出现问题后检查Eclipse的编码设置后均没有问题,于是怀疑可能是Tomcat导致的问题。后来发现我的Tomcat和他们的不一样,换成他们用的Tomcat后乱码问题就没有了!我很纳闷,为什么会这样呢,我明明是从Apache官网下载的,我很不理解!经过一段时间在网络上的搜索,发现将Tomcat目录下的server.xml文件的useBodyEncodingForURI设置为"true"可能可以解决问题,于是在
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />中加入useBodyEncodingForURI="true"后问题得到圆满解决!!!
问题终于解决了,感觉很舒畅,必须充分利用网络搜索功能,有时真的可以省很多时间和麻烦,呵呵!下面是我搜索到的解决Tomcat下乱码的方法,仅供以后参考:
1、 对于同一个应用,最好统一编码,推荐为UTF-8,当然GBK也可以。
2、 正确设置JSP的pageEncoding参数
3、 在所有的JSP/Servlet中设置contentType="text/html;charset=UTF-8"或response.setCharacterEncoding("UTF-8"),从而间接实现对浏览器编码的设置。
4、 对于请求,可以使用过滤器或者在每个JSP/Servlet中设置request.setCharacterEncoding("UTF-8")。同
时,要修改Tomcat的默认配置,推荐将useBodyEncodingForURI参数设置为true,也可以将URIEncoding参数设置为
UTF-8(有可能影响其他应用,所以不推荐)。
|