请问过滤器适用于消除哪些情况的乱码? 感觉乱码产生的场合好像不完全一样,有的是jsp页面编译时产生的,有的是页面间数据传输导致的,不知这些都能通过过滤器消除吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只能解决请求响应时的编码,基本上可以说是数据传输造成的,仅对于POST方式的有用,对于GET方式的无效。Java Web应用中的乱码主要产生在以下几个方面和基本的解决方法:1,页面乱码默认为ISO8859-1,通过@page指令解决。2,请求响应乱码请求/响应的编码默认为ISO8859-1,通过过滤器设置request和response的setCharacterEncoding方法来解决。3,数据库乱码(以数据库的客户端默认编码)对于Oracle和SQL Server没有什么问题,对于MySQL可以在连接字符串后面加上?useUnicode=true&characterEncoding=gb2312来解决,或者修改my.ini的MySQL参数文件。4,URL参数乱码默认为ISO8859-1,这个最为麻烦,如果使用Tomcat,需要修改server.xml,把其中的两个Connector元素加上URIEncoding="gb2312"属性,对于Firefox这就可以了,但是对于IE这还不够,需要手工将中文字符使用URLEncoder.encode方法转为URL编码,就是采用%XX%XX%XX这样的格式。总之Java Web开发的过程就是与乱码不断进行斗争的过程。 谢谢楼上的详细回答,我现在遇到的问题可能多半属于你说的第一种。我的@page一般写成:<%@ page pageEncoding="GBK" contentType="text/html;charset=gb2312"%>问题多出在charset上,有的网页必须把charset设为GBK才行,更奇怪的是有的网页改为GBK后好了一阵又变成乱码,又得重新改回gb2312,来回折腾,不知何故?连静态部分都一会儿正常一会儿乱码,这是什么原因? pageEncoding="GBK" 这个编码一般不用去设置的,这个是以何种字符集来编译成Servlet的编码格式。你的问题好像挺奇怪的,GBK的字符集要比GB2312多,并且是兼容GB2312的,一般不会出现GBK和GB2312互换而变成乱码的。 那麻烦你再解释一下静态页面为什么也会出现乱码?怎么解决?难道是应用服务器tomcat的问题?可我已经在connector标签里加了URIEncoding="GBK"啊 静态页面,就是HTML也会出现乱码? 急,跪求一个java正则表达式 急求!问个JPanel的简单问题 请问Vector的 boolean add(E e) 和 void addElement(E obj) 方法有什么区别 一段代码,关于数组排序的. 一个菜鸟问题:帮我看看这个关于“关闭窗口按钮”的问题吧!谢谢! 以英文形式显示时间?? 初学者一个奇怪的问题 关于类的相互调用难题! 如何得到一个窗体移动的信息!! 怎样定时触发一事件,请教 问个基础问题 我想做一个加法的界面,但点击等于号就会报错,为什么呢?请各位高手帮我看看~
默认为ISO8859-1,通过@page指令解决。
2,请求响应乱码
请求/响应的编码默认为ISO8859-1,通过过滤器设置request和response的
setCharacterEncoding方法来解决。
3,数据库乱码(以数据库的客户端默认编码)
对于Oracle和SQL Server没有什么问题,对于MySQL可以在连接字符串后面加上
?useUnicode=true&characterEncoding=gb2312来解决,或者修改my.ini的
MySQL参数文件。
4,URL参数乱码
默认为ISO8859-1,这个最为麻烦,如果使用Tomcat,需要修改server.xml,把
其中的两个Connector元素加上URIEncoding="gb2312"属性,对于Firefox这就
可以了,但是对于IE这还不够,需要手工将中文字符使用URLEncoder.encode方法
转为URL编码,就是采用%XX%XX%XX这样的格式。总之Java Web开发的过程就是与乱码不断进行斗争的过程。
我的@page一般写成:<%@ page pageEncoding="GBK" contentType="text/html;charset=gb2312"%>
问题多出在charset上,有的网页必须把charset设为GBK才行,更奇怪的是有的网页改为GBK后好了一阵又变成乱码,又得重新改回gb2312,来回折腾,不知何故?连静态部分都一会儿正常一会儿乱码,这是什么原因?
一般不会出现GBK和GB2312互换而变成乱码的。
难道是应用服务器tomcat的问题?可我已经在connector标签里加了URIEncoding="GBK"啊