我用的是hobernate3.0 + mysql 4.1
保存DB用的是
getHibernateTemplate().save(news);来保存的,(其它文字没问题,就中文有问题)
news 是个基类,
save 前, System.out.print(news.getTitle()) 可输出页面上传过来的中文,
可save后,
可进入 mysql 查看就是? ,再到数据显示页面中看也是 ?java 文件用的都是utf-8,jsp文件用的是gbk,mysql CHARSET=gbk,mysql根目录中的my.ini 也是gbk.大家帮我看看,这中文的问题怎么处理,谢谢!

解决方案 »

  1.   

    1、先确定数据里保存的是否是乱码:
    mysql>select * from yourtable;
    查看如果是乱码的话,就是你插入数据的时候,当前页面的编码方式和你mysql的编码方式不一致。
    2、如果排除了以上乱码的可能,也就是说数据库中能正常保存中文,就需要检查你页面显示的编码方式了。大致思路是这样的,你多多试验体会
      

  2.   

    我试过楼上说的,
    在mysql语句中执行 insert 中文,mysql会显示中文,
    所以应该是hibernate save 时,没插中文,识别中文出错,
    应该怎么办呢, 
      

  3.   

    找到MYSQL安装目录下的my.ini文件修改:
    [client]port=3306[mysql]default-character-set=gbk
    # SERVER SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by the MySQL Server. Make sure that
    # you have installed the server correctly (see above) so it reads this 
    # file.
    #
    [mysqld]# The TCP/IP Port the MySQL Server will listen on
    port=3306
    #Path to installation directory. All paths are usually resolved relative to this.
    basedir="C:/Program Files/MySQL/MySQL Server 5.0/"#Path to the database root
    datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"# The default character set that will be used when a new schema or table is
    # created and no character set is defined
    default-character-set=gbk# The default storage engine that will be used when create new tables when
    default-storage-engine=INNODB
      

  4.   

    我的mysql.ini 就是4楼那样设置的,
    再帮我找找问题
      

  5.   

    楼上方法改下应该就不会有问题了。
    再不然重装mysql.不过注意一定要选字符集。你要是安装没记得选过GBK就是没选
      

  6.   

    1.创建数据库时启动mysql使用参数
    mysql -uroot -p123456 --default-character-set utf82.创建数据库
    create database xxx default character set utf8;
    执行sal脚本
    source /home/tarena/phone.sql3.修改mysql 数据库连接url
    jdbc:mysql://localhost:3306/phone?useUnicode=true&characterEncoding=utf84.提交时使用post提交
    <form action="xxx.do" method="post">5.使用过滤器filter
    reqeust.setCharacterEncoding("utf8");6.jsp页面设置字符集
    <%@page contentType="text/html;charset=utf8" %>
      

  7.   

    修改mysql的默认字符集是通过修改它的配置文件来实现的
    windows下的mysql配置文件是my.ini,一般在安装目录下(如C:\Program Files\MySQL\MySQL Server 5.0),可以直接在这个文件里面加上 default-character-set=gbk #或gb2312,big5,utf8
    然后重新启动mysql  查看 MySQL 数据库服务器字符集,数据库字符集和客户端字符集 show variables like '%char%'; character_set_client,客户端字符集 character_set_database,数据库字符集 character_set_server,服务器字符集 2. 查看 MySQL 数据表(table) 的字符集 show table status from tablename like '%countries%'; 3. 查看 MySQL 数据列(column)的字符集。 show full columns from tablename; 4. 查看当前安装的 MySQL 所支持的字符集。 show char set;
      

  8.   

    1,项目的编码
    2,页面(如JSP)的编码
    3,MySQL的表都有编码的配置
    ===============================
    以上全部统一