非新手,数据写入时的乱码问题,请多看一眼
做过几个Spring+Hibernate的东西,应该不算很菜的新手了,但是还是遇到了令人困惑的问题,如下:
业务:用户上传文件,并有描述信息,信息和文件都保存在数据库中,应该很简单
平台:Linux+Mysql+Tomcat(开发平台是Mac,不过好像与这个无关)
环境:源码编码utf8,数据库utf8,加有字符串编码过滤器utf8,完全的utf8环境
连接字符串:jdbc:mysql://localhost/Kusing?useUnicode=true&characterEncoding=UTF-8
结构:
利用Spring MVC和Spring的IOC,并由Spring管理Hibernate的事务等,基本上是教科书版的Spring+Hibernate
View: JSP with JSTL
Controller: extends from SimpleFormController
Model: 一个logic接口,及一个实现类
DAO: extends HibernateDaoSupport
现象:
对logic进行单元测试,保存数据没有问题
从web页上传文件,描述信息为中文,在Controller打印到日志中文正常,在Model实现类中打印到日志中文仍正常,model中直接调用了dao.save方法,基本无其它操作,查看数据库中内容为乱码,页面再次读取该内容也乱码,但如果手工将数据库中内容修改为正确的中文,在页面读取查看也正常
事情基本上就是这样了,请各位帮忙看一下,困扰很久了(还好只是做来玩的东西……),不得其解,如果有表述不完整的地方请提出来
ps.在其它同样使用spring+hibernate的项目里却没有这样的问题出现,但是项目连lib目录都是一样的 1 楼 hgq0011 2007-05-30 0000 写道jdbc:mysql://localhost/Kusing?useUnicode=true&characterEncoding=UTF-8
是不是应该这样(useUnicode=true&characterEncoding=UTF8 )写呢?是不是没有起作用?你在mysql的安装目录下的my.ini文件中把默认字符改成utf8( default-character-set=utf8)试试 2 楼 itea 2007-05-30 试试...=utf8 3 楼 0000 2007-05-30 刚出去觅食回来~
偶是写的&被转成&了……
用characterEncoding=utf8还是一样~~涛声依旧啊
至于mysql,其它项目也是在偶这台机器上做的,都没问题…… 4 楼 0000 2007-05-30 呀!!
行了!!!
不过很奇怪~~~我把链接字符串里的useUnicode=true去掉就ok了…… 5 楼 hgq0011 2007-05-30 0000 写道呀!!
行了!!!
不过很奇怪~~~我把链接字符串里的useUnicode=true去掉就ok了……
这样也行呀,怪了, 6 楼 0000 2007-05-31 据说被评为新手帖……也罢,反正积分对我没什么用