liang__
2009-11-28 11:19 阅读 195
已采纳

Linux下老项目更换JDK tomcat mysql 后引起乱码

我的问题是这样的

现在有一个系统(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之前一切都是好的。代码没做任何改动。我怀疑是驱动的问题。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    cfy_9310guo cfy_9310guo 2009-11-29 12:53

    你启动tomcat的用户, 要设置环境变量为中文.
    1. 用这个用户登录, 执行命令:
    [code="java"]$ export LANG=zh_CN.GBK[/code]

    1. 然后再用这个用户启动tomcat, 就可以了

    如果嫌每次都要输入麻烦, 也可以在这个用户的配置文件
    ~/.profile里面增加这一行:
    [code="java"]$ export LANG=zh_CN.GBK[/code],
    然后这个用户每次登录就是中文环境了

    点赞 评论 复制链接分享
  • cfy_9310guo cfy_9310guo 2009-11-29 12:55

    .profile文件中增加的写错了, 去掉前面的$符号
    [code="java"]export LANG=zh_CN.GBK [/code]

    点赞 评论 复制链接分享

相关推荐