Hibernate和mysql 中文问题

sqz007 2005-10-28 11:56:52
以前用Hibernate3和mysql4.0
jdbc:mysql://localhost/db?useUnicode=true&characterEncoding=GB2312
数据源这么配置中文没有任何问题
后来换成mysql5.0就不行了 写入中文没有问题 但是读出来的就是乱码了
请高手指点一下
...全文
409 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqz007 2005-12-03
  • 打赏
  • 举报
回复
难道只有这样吗 这样的话以前版本的数据库就无法平稳的迁移过来了
e3002 2005-12-02
  • 打赏
  • 举报
回复
同意楼上的说法jdbc:mysql://localhost:3306/didoleo?useUnicode=true&characterEncoding=UTF-8
sqz007 2005-11-30
  • 打赏
  • 举报
回复
create database xxx character set utf8

create table xxx character set utf8
能不能不用这种呢,这种得话以前的数据就没法迁移了
zeq258 2005-11-03
  • 打赏
  • 举报
回复
回复人: bosedom(白纸) ( ) 信誉:100 2005-10-28 15:20:46 得分: 0



应该要转换一下的吧,可以试试这样:
s = new String(s.getBytes("iso-8859-1"),"gb2312");



----------------------------------
这样应该就可以了!

因为mysql数据库的编码方式是iso-8859-1,在页面中,你要正确的显示中文,那么就必须把编码方式转换为gbk或者gb2312,这样旧可以正确显示了!
didoleo 2005-11-03
  • 打赏
  • 举报
回复
hibernate.cfg.xml 文件配置

<property name="connection.url">
jdbc:mysql://localhost:3306/didoleo?useUnicode=true&characterEncoding=UTF-8
</property>

如果是hibernate.properties文件配置

jdbc:mysql://localhost:3306/didoleo?useUnicode=true&characterEncoding=UTF-8

另外mysql 数据库的my.ini

[client]
port=3306
default-character-set=utf8

[mysqld]
port=3306
default-character-set=utf8


再有

create database xxx character set utf8

create table xxx character set utf8

从这几方面同时试验一下看看




Octer 2005-11-03
  • 打赏
  • 举报
回复
应该是数据库字符集的问题吧,可以考虑utf-8,如果你是做bs结构的,只需要将request,response相应encoding设置成utf8就可以了,不需要不需要?useUnicode=true&characterEncoding=GB2312这句话
HouJinkun2005 2005-11-02
  • 打赏
  • 举报
回复
MySQL>use 你的库名
MySQL>status
看看字符集是什么。

我前些日子也给这东西搞死了,在config里设置了gbk,到里面还是latin1。最后改my.ini的默认字符集改成gbk.
还有建库的时候,我是用脚本导进去的,导的时候mysql --user=root --default-character-set=gbk -p<createdatabase.sql
不然建的库对中文还是有问题。
usherlight 2005-11-02
  • 打赏
  • 举报
回复
你安装Mysql5.0的时候 ,指定的字符集正确吗?
kb 2005-10-31
  • 打赏
  • 举报
回复
tomcat5.0.19
win2kpro
mysql 5/4.1.19
hibernate 3.0

我的也是这样子。上面提到的方法都用过了没有用,不是???就是半拉的汉字。而我用oracle就没有这样的问题
sqz007 2005-10-31
  • 打赏
  • 举报
回复
真是郁闷
hmsxq 2005-10-29
  • 打赏
  • 举报
回复
Hibernate读出来的还是一堆"?",转换一下吧
rickhunterchen 2005-10-29
  • 打赏
  • 举报
回复
Hibernate还没有验证过。
但直接用JDBC连Mysql 5.0 不需要?useUnicode=true&characterEncoding=GB2312这句话了。
bosedom 2005-10-28
  • 打赏
  • 举报
回复
应该要转换一下的吧,可以试试这样:
s = new String(s.getBytes("iso-8859-1"),"gb2312");
sqz007 2005-10-28
  • 打赏
  • 举报
回复
没人吗

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧