转自:http://blog.youkuaiyun.com/cuker919/article/details/6107469
默认情况下,Tomcat对请求采用的默认编码是ISO-8859-1, 这样我们提交的汉字被认为是ISO-8859-1的编码,所以在程序中接收时显示乱码 。 在过滤器中调用request.setCharacterEncoding("GBK"),那么Post上来的汉字将被认为是GBK编码,而 Tomcat5对于Get请求上来的编码并不根据过滤器的设定辨认编码方式,默认的依然是ISO-8859-1,所以,即使你的页面使用默认的编码方式进 行编码,然后使用ISO-8859-1进行解码,得到的结果也不对
。
解决方法:
在TOMCAT中的conf/server.xml中的<Connector中添加两个设置
useBodyEncodingForURI="true" //设置POST和GET使用相同编码
URIEncoding="UTF-8" //对URI使用utf-8编码处理
可以用String提供的编码转化测试,请求的参数值:
name = new String(name.getBytes("ISO8859-1"),"UTF-8").trim();
System.out.println(" name : " + name)
本文详细阐述了在使用Tomcat时遇到的编码问题,包括默认编码为ISO-8859-1导致的乱码问题,并提供了解决方案。通过在server.xml文件中配置useBodyEncodingForURI和URIEncoding属性,可以确保POST和GET请求使用相同的编码,从而避免乱码。同时,展示了如何在请求参数处理中进行编码转换。
826

被折叠的 条评论
为什么被折叠?



