Duran's technical life
踏踏实实学技术,认认真真做研究。

环境:Hibernate 2.1.7 + MySQL4.1(MySQL的编码已设置为utf8)
问题:通过Hibernate向MySQL写入中文后,通过Hibernate取回数据,在console中打印java对象显示正常。但在MySQL Query Browser中看到的是乱码,传给前端的Flex也是乱码。
原因:Hibernate的基础还是JDBC,所以一样需要设置characterEncoding!
解决方法
在hibernate.cfg.xml中应该这样写

<property name="connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</property>
如果用hibernate.properties
#hibernate.connection.url jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

ps:处理中文的话,characterEncoding用GBK一样可以。
但字节编码问题最好的解决方法还是统一使用UTF-8!!!
posted on 2005-06-10 21:35 Duran's technical life 阅读(15903) 评论(13)  编辑  收藏 所属分类: 技术积累
Comments
  • # re: Hibernate MySQL 中文乱码问题
    MDZhao
    Posted @ 2005-12-29 23:53
    我就是这样呀,可是还是不行呀?  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    beherca
    Posted @ 2006-01-24 09:53
    谢谢啦,正好遇到这个问题,我是用struts+hibernate+mysql来作系统的,做了一个filter解决了struts的乱码,然后修改了mysql的默认编码,但是发现还是出现乱码的问题。呵呵,原来是这样的~~谢谢  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    antonlan
    Posted @ 2006-06-08 22:49
    banq:

    像你如上的设置,使用程序读取和插入是没有问题的;但是如果我要用sql插入中文就不成了,我用过mysql的命令行和其它的客户端工具,都插不进去。设置成GBK就没问题了。  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    板桥居
    Posted @ 2006-07-13 14:45
    @antonlan
    if u excute a script loaded form a local file, the file should also be encoded by UTF8(UEdit can change the encode)!  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    hohoho
    Posted @ 2006-07-31 23:34
    &amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8

    mysql也设置成utf8,一切ok  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    andy[匿名]
    Posted @ 2006-12-05 14:06
    查询列表没有问题,
    (List)this.getHibernateTemplate().find("from Customer");

    但用主键查单个时不出,提示查找不到,当主键为中文时:
    customercode参数为jsp(jsp也是用的utf-8,中文显示也正常)
    传入,如:/xxx/xx.do?customercode=移动
    (Customer)getHibernateTemplate().load(Customer.class,customercode);

      回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    小杨
    Posted @ 2008-06-05 09:06
    以上的用法果然成效,大家可以试试  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    小杨
    Posted @ 2008-06-05 09:07
    我的开发环境是Struts+hibernate  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    小董
    Posted @ 2009-05-14 20:34
    为什么我的报错啊,我用的是SQL Server 2000,hibernate,struts

    java.sql.SQLException: 无法打开登录 'OnlineExam?useUnicode=true&characterEncoding=UTF-8' 中请求的数据库。登录失败。
      回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题[未登录]
    test
    Posted @ 2010-10-18 17:42
    很感谢@小董
      回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    xc
    Posted @ 2011-12-08 11:16
    幸亏看到楼主的解决方法;找了快一天的问题;坑爹的编码问题  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题
    仰泳...
    Posted @ 2012-05-23 08:44
    问题解决了,谢谢帮助!!!  回复  更多评论   
  • # re: Hibernate MySQL 中文乱码问题[未登录]
    张龙
    Posted @ 2013-04-30 13:09
    我的怎么还没用呢?  回复  更多评论   

只有注册用户登录后才能发表评论。


网站导航: