当前位置:编程学习 > JSP >>

jsp struts2+hibernate3.3 中文乱码

最近做项目,都被乱码问题搞到晕了,页面都是同一使用utf-8, hibernate配置文件 jdbc:mysql://localhost:3306/cssrain?useUnicode=true&characterEncoding=UTF-8 也都用了utf-8,显示是没有问题了,但是每次添加纪录时,都是乱码,有试过用转码,但是每次都要一个个这样转,好麻烦,求过滤器,如何做?
答案:过滤器代码public class EncodingFilter implements Filter {

	private String encoding = "UTF-8";

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain arg2) throws IOException, ServletException {
		request.setCharacterEncoding(encoding);
		response.setCharacterEncoding(encoding);
		// 传递控制到下一个过滤器
		arg2.doFilter(request, response);

	}

	public void init(FilterConfig filterConfig) throws ServletException {
		String s = filterConfig.getInitParameter("Encoding");
		if (s != null) {
			encoding = s;
		}

	}

	public void destroy() {

	}
}然后在web.xml中添加如下代码:<filter>
		<filter-name>Set Character Encoding</filter-name>
		<filter-class>com.util.EncodingFilter</filter-class>
		<init-param>
			<param-name>Encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>Set Character Encoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
其他:mysql默认的编码格式是latin1,你可以修改一下mysql的my.ini文件使它的默认编码都变成UTF-8,修改方法网上多得是,应该是加一句话,Default_charset = utf8;具体的查下就知道了 楼下写的filter就很合适,如果还有乱码的话,就是mysql数据库中的编码有问题,mysql的编码分好几个等级,要保证每个等级都是utf8才可以,最好是在你安装mysql时选的字符集是utf8,这样的话,你创建的表或导入的数据都是utf8的,希望对你有帮助。 

上一个:jsp分页和SQL分页哪个效率高
下一个:DW cs4怎么编写JSP

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,