以前就遇到过乱码问题,都完美的解决了,今天又遇到了,花了半天时间才弄好。。
1. 在web.xml中注册encoding filter,过滤所有请求
<filter>
<filter-name>EncodeFilter</filter-name>
<filter-class>com.sail.common.util.EncodeFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. 在JSP页面中设置页面编码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
3. 设置数据库编码为utf8(注:如果在修改数据库编码前表以存在,需要重新建表。这困扰我很久,所有地方都设对了还是不行,我胡乱把表重新建了一下就ok了)
4. JDBC连接串后加上编码
jdbc:mysql://localhost:3306/sail?useUnicode=true&characterEncoding=utf8
5. 资源文件编码(之前忘记加-encoding gb2312了,所以读到页面上也是乱码)
native2ascii -encoding gb2312 sail.properties.zh sail_zh_CN.properties