Hibernate+mysql 中文问题解决方案.

1, mysql安装时设置字符集utf-8, jdbc驱动3.0.15以上.
2. hibernate配置文件中,加上属性
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>

3. web.xml设置Filter
=================================================
<filter>
  <filter-name>
   Set Web Application Character Encoding
  </filter-name>
  <filter-class>cn.com.commnet.util.SetEncodeFilter</filter-class>
  <init-param>
   <param-name>defaultencoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>
   Set Web Application Character Encoding
  </filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

=============================================
SetEncodeFilter.java
public class SetEncodeFilter implements Filter {
    protected FilterConfig filterConfig = null;
    protected String defaultEncoding = null;
    /* (non-Javadoc)
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
        this.filterConfig = arg0;
        this.defaultEncoding = filterConfig.getInitParameter("defaultencoding");
    }
    /* (non-Javadoc)
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    public void doFilter(
        ServletRequest request,
        ServletResponse response,
        FilterChain chain)
        throws IOException, ServletException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding(selectEncoding(request));
        chain.doFilter(request, response);
    }
    public void destroy() {
        this.defaultEncoding = null;
        this.filterConfig = null;
    }
    protected String selectEncoding(ServletRequest request) {
        return this.defaultEncoding;
    }
}

 

 

另需注意的是数据库, 表, 字段的字符集是否也正确!
alert database DBNAME character set=utf8

 

http://www.cnblogs.com/josson/archive/2005/03/16/119619.html

posted on 2008-11-13 09:33  zqonline  阅读(359)  评论(0编辑  收藏  举报

导航