日期:2014-05-16  浏览次数:20386 次

jsp页面提交中文乱码的几种解决方法集锦(转载)

JSP页面提交后中文字符出现乱码-tomcat下中文乱码问题

JSP页面提交后中文字符出现乱码-tomcat下中文乱码问题项目和页面都已设成了UTF-8编码形式;?
解决方法:1)?设定请求的字符编码request.setCharacterEncoding("UTF-8");
2)?指定过滤类
这些天开发一个项目,服务器是tomcat,操作系统是xp,采用的是MVC架构,模式是采用?Facade模式,总是出现乱码,自己也解决了好多天,同事也帮忙解决,也参考了网上众多网友的文章和意见,总算是搞定。但是好记性不如烂笔杆,所以特意记下,以防止自己遗忘,同时也给那些遇到同样问题的人提供一个好的参考途径:?

(一)?JSP页面上是中文,但是看的是后是乱码:?
解决的办法就是在JSP页面的编码的地方<%@?page?language="java"?contentType="text/html;charset=GBK"?%>,因为Jsp转成Java文件时的编码问题,默认的话有的服务器是ISO-8859-1,如果一个JSP中直接输入了中文,Jsp把它当作?ISO8859-1来处理是肯定有问题的,这一点,我们可以通过查看Jasper所生成的Java中间文件来确认?

(二)?当用Request对象获取客户提交的汉字代码的时候,会出现乱码:?
解决的办法是:要配置一个filter,也就是一个Servelet的过滤器,代码如下:?

01 import java.io.IOException;??
02 import javax.servlet.Filter;??
03 import javax.servlet.FilterChain;??
04 import javax.servlet.FilterConfig;??
05 import javax.servlet.ServletException;??
06 import javax.servlet.ServletRequest;??
07 import javax.servlet.ServletResponse;??
08 import javax.servlet.UnavailableException;??
09 ??
10 /**??
11