日期:2014-05-16  浏览次数:20787 次

oracle9i乱码问题
遇到个很奇怪的问题,oracle9i的编码是US7ASCII,前台页面的编码是utf-8,数据在数据库显示是不乱码的,我是用hibernate读取数据的,数据在后台经过转码了。现在的问题是,hibernate查哪条数据,数据库的哪条数据就会乱码。按理来说,hibernate只是查询数据库的数据而已,怎么会使数据库的数据乱码呢,求解!
------最佳解决方案--------------------
应该是hibernate更新过数据库的数据了。查看下hibernate的执行语句,应该会有update的更新语句被执行过,要不数据库的数据怎么会被改变呢?
由于你的数据库是us7ascii字符集的,查到后台时数据肯定乱码,hibernate则认为该条记录的内容发生了改变,当关闭session时,hibernate刷新内存,把乱码的内容写进了数据库,导致数据库的内容变为乱码的内容!
------其他解决方案--------------------
该回复于2012-10-06 11:13:47被版主删除
------其他解决方案--------------------
查看了下hibernate执行的sql语句,确实有执行过update.那怎么样才能不让hibernate不自动执行update语句呢?