我的问题是这样的
现在有一个系统(redhat 9),大概是03年的时候开发的。
现在我需要把这个系统升级一下并加入新的模块,把原来的用的tomcat4,mysql4,jdk1.4换为最新稳定版。
现在全部换过之后出现了乱码问题。
安装过程是这样的,我先安装了JDK 6,安装之后一切正常没有乱码,安装tomcat6也是一切正常。
但是安装完mysql就出现了乱码,mysql的编码采用GBK,mysql内的表中的数据还能显示正常为中文。并且查询出来的数据也能在页面上显示中文。
现在是登录之后记录日志的地方就成了乱码,[color=red]表现为sqlL语句含有中文的地方成了乱码[/color] 比如代码里是这样写的insert into log(eventScript,type) values('用户XX登录成功','登录'); 因为这里出现乱码,造成数据过长而没有成功插入数据库。
mysql原有驱动是在 /usr/local/mysql/mm.mysql.jdbc-1.2c,这个驱动好像很早,我没有见过,接触java的时间还不到两年,所以对老项目的这些配置不是很熟悉。
我把驱动换为mysql-connector-java-5.1.7-bin.jar 并放在WEB-INF/lib/ 下,启动后有乱码。 我把原先的驱动删除掉以后会报错,我把 mysql-connector-java-5.1.7-bin.jar这个驱动也放在了/usr/local/mysql/下并且删除了原有驱动,可以正常启动,同样有乱码。
mysql的连接参数中加了这样的语句 useUnicode=true&characterEncoding=GBK
-------------------------------------
现在我不知道是什么问题引起了乱码,请有过这方面经验的人给出出主意。
再说一句,在没有更换MySQL之前一切都是好的。代码没做任何改动。我怀疑是驱动的问题。