日期:2014-05-18  浏览次数:20834 次

关于字符编码问题
如果一个jsp的字符编码设置为“iso-8859-1”,这个jsp文件中有汉字,有一个Encoding过滤器,内面有request.setCharactorEncoding("gbk")和response.setCharactorEncoding(“gbk”)这样的语句。客户端请求得到的这个jsp能在浏览器里面显示中文汉字吗?也就是response.setCharactorEncoding(“gbk”)能覆盖jsp以前的字符编码“iso-8859-1”这个编码。如果有一个jsp请求页面的编码为“iso-8859-1”,经过过滤器他的编码会变成“gbk”吗?

------解决方案--------------------
看下这个博客http://blog.sina.com.cn/s/blog_417d26b70100e5ho.html

如果你的汉字是从页面传过来的,你可以修改tomcat server.xml 中 URIEncoding="GBK"
如果汉字是从数据库中读出的,确保编码格式一致。
------解决方案--------------------
不会。

通常情况下,filter一般会在jsp输出html之前运行。无论filter中如何修改,jsp在输出页面的时候,都会输出IOS-8859-1,中文肯定会乱码的。