liang__ 2009-11-28 11:19
浏览 205
已采纳

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 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],
    然后这个用户每次登录就是中文环境了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程