webwork处理编码webwork.properties 设置你的缺省 locale和编码方案
webwork.locale=en_US
webwork.i18n.encoding=UTF-8
如果使用freemarker 还要设置freemarker.properties
locale=en_US
default_encoding=UTF-8
网页上设置编码
1、JSP文件用支持UTF-8的文字编辑器编辑,如EditPlus、UltraEdit,并把原来ascii转换成utf-8(菜单里有)。
2、JSP文件头改成:
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*"%>
3、html文件
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
数据库
1、mysql配置文件:修改mysql在windows/my.ini里default-character-set=utf-8
2、mysql里数据库和表也都设为utf8_unicode_ci
3、数据库连结:jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf-8
属性文件
native2ascii -encoding UTF8 ApplicationResources_xx.properties ApplicationResources_zh.properties
过滤器
EncodingFilter.java
public class EncodingFilter implements Filter {
public void init(FilterConfig cong) {
// do nothing
}
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) {
try{
//编码
srequest.setCharacterEncoding("UTF-8");
//继续请求
chain.doFilter(srequest, sresponse);
}catch(Exception e){
e.printStackTrace();
}
}
public void destroy() {
//do nothing
}
}
web.xml
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>fr.simatai.util.application.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
数据库字符编码转化(己存在的表)
ALTER TABLE test CONVERT TO CHARACTER SET UTF8