每次提交表单存入数据库都产生乱码.已经采取以下措施:
1.每张jsp页面都有<%@ page language="java" pageEncoding="UTF-8"%>
2.tomcat的server.xml有如下内容:
   <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
   URIEncoding='UTF-8'/>
3.hibernate.cfg.xml顶部内容如下:
   <?xml version='1.0' encoding='UTF-8'?>
4.已经使用过滤器setCharacterEncoding,里面有:
      request.setCharacterEncoding("UTF-8");
  调试显示已经调用了。
5.mysql数据库设置为utf8编码,单独在mysql里写sql语句可以输入中文,显示中文。
可为什么就是一用网页提交就中文乱码了?
我使用hibernate持久类的,单独调试发现运行到如下语句时:
 session=HibernateSessionFactory.getSession();
 tx=session.beginTransaction();
 session.save(user);
 tx.commit();
其中user中的中文还是正常的,我真的不知道还有哪里有问题了,请大家帮我想想吧,会不会在提交到mysql的时候出问题了?

解决方案 »

  1.   

    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
    </property>
    <property name="connection.url">
    jdbc:mysql://127.0.0.1:3306/netctoss?useUnicode=true&amp;characterEncoding=utf8
    </property>
    <property name="connection.username">root</property>
    <property name="connection.driver_class">
    com.mysql.jdbc.Driver
    </property>
    <property name="myeclipse.connection.profile">mysqlDriver</property>
    <property name="show_sql">true</property>
    在你连接数据库的后面加?useUnicode=true&amp;characterEncoding=utf8
      

  2.   

    reponse.setCharacterEncoding("UTF-8"); 加这个看看
      

  3.   

    既然有中文,干嘛不使用GBK编码呢...安装MYSQL的时候也选择GBK编码...
      

  4.   

    1.确定你的数据库安装使用的编码方式和jsp界面的编码方式是统一的?在你的页面和servelet之间加一个fileter的插件,从新改变字符的编码方式!我想就可以了!
    2.就是要看你数据库的安装是不是和你的页面编码方式统一了!只在连接字符串的后面加上characterEncoding=UTF-8是不好使的!
      

  5.   

    数据库连接字符串后面加上characterEncoding=utf8 试试
    jdbc:mysql://localhost:3306/dbname?characterEncoding=utf8
      

  6.   

    LZ 做到那几步,一般不会出现中文乱码问题要么就是 在数据库连接字符串后面加上characterEncoding=utf-8
      

  7.   


    request.setCharacterEncoding("UTF-8"); 

    rsponse.setCharacterEncoding("UTF-8"); 
    试着加入这段代看看