jsp struts2+hibernate3.3 中文乱码
最近做项目,都被乱码问题搞到晕了,页面都是同一使用utf-8, hibernate配置文件 jdbc:mysql://localhost:3306/cssrain?useUnicode=true&characterEncoding=UTF-8 也都用了utf-8,显示是没有问题了,但是每次添加纪录时,都是乱码,有试过用转码,但是每次都要一个个这样转,好麻烦,求过滤器,如何做?
最近做项目,都被乱码问题搞到晕了,页面都是同一使用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