如果页面也出现中文问题建议加一个过滤器,代码如下:CharacterEncodingFilter.java(过滤器)package test.filter;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;public class CharacterEncodingFilter extends HttpServlet implements Filter {
    private FilterConfig filterConfig;
    //Handle the passed-in FilterConfig
    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
    }    //Process the request/response pair
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain filterChain) {
        try {
            request.setCharacterEncoding("GBK");
            filterChain.doFilter(request, response);
        } catch (ServletException sx) {
            filterConfig.getServletContext().log(sx.getMessage());
            sx.printStackTrace();
        } catch (IOException iox) {
            filterConfig.getServletContext().log(iox.getMessage());
            iox.printStackTrace();
        }
    }    //Clean up resources
    public void destroy() {
    }
}web.xml配置
...
</servlet-mapping>
<filter>
<filter-name>characterencodingfilter</filter-name>
<filter-class>
test.filter.CharacterEncodingFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>characterencodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

解决方案 »

  1.   

    乱码的原因很多的,不只是hibernate配置的原因。你的jsp编码,还有数据库码都可能是原因,看看是否都是UTF-8了。
      

  2.   

    使用filter是没用的.弄不出来我的jsp页面是pageEncoding="gb2312" 不明白UTF-8是指哪个?struts-config.xml和hibernate.cfg.xml开头是<?xml version="1.0" encoding="UTF-8"?>不知道该怎么办才好网上方法都不行.
    <property   name= "connection.url "> 
    jdbc:microsoft:sqlserver://127.0.0.1:1433 
    </property> 
      

  3.   

    首先,页面要设置成gbk或utf-8,确保不显示乱码;
    其次,servlet 要加过滤器,使从页面传回的值不乱码;一般就可以了,不过有的时候,问题怪的很tomcat里也要设定一下,问题多的很啊 
      

  4.   

    很久以前写的一篇文章 希望对你有帮助 :)http://blog.csdn.net/shagoo/archive/2006/11/16/1387329.aspx
      

  5.   

    hibernate3.0 
    使用?
    而不是sql字符串+