解决乱码总结

来源:互联网 发布:免费快递打印软件 编辑:程序博客网 时间:2024/05/18 06:08

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 

原创粉丝点击