redhat9下使用mysql乱码的一个原因

一个两年前的项目因要进行更新维护需要重新配一个测试环境。
原环境为:
redhat7.3
jdk1.3.1
Apache 1.3
tomcat 4.03
mysql 3.23.51

现环境:
redhat9
jdk1.42
tomcat 4.1.31
mysql 4.10

装好redhat, tomcat, mysql 并把数据倒入mysql后,用mysql的client可看到数据库内的内容正确。
把war包放到tomcat的webapps下,运行tomcat,war包自动解开。
打开页面成功,但当执行需要读取数据库的页面时出错
查log有 Util.getConnection() thrown java.sql.SQLException: No suitable driver
判断为jdbc不配合。查程序发现原来用的jdbc是mm.mysql-2.0.11-bin.jar
http://www.mysql.com下载新版的jdbc mysql-connector-java-3.0.8-stable-bin.jar后也不能用。
重装mysql换成mysql3.23.58,再倒数据设权限。
打开页面后发现英文页面正常中文页面乱码。
执行
export LANG=zh_TW.BIG5
export LC_ALL=zh_TW.BIG5
后中文页面正常,英文页面乱了
再来
export LANG=en_US.iso8859_1
export LC_ALL=en_US.iso8859_1
中英文页面正常。
原来redhat9默认的locale是
LANG=en_US.UTF8
LC_CTYPE="en_US.UTF8"
LC_NUMERIC="en_US.UTF8"
LC_TIME="en_US.UTF8"
LC_COLLATE="en_US.UTF8"
LC_MONETARY="en_US.UTF8"
LC_MESSAGES="en_US.UTF8"
LC_PAPER="en_US.UTF8"
LC_NAME="en_US.UTF8"
LC_ADDRESS="en_US.UTF8"
LC_TELEPHONE="en_US.UTF8"
LC_MEASUREMENT="en_US.UTF8"
LC_IDENTIFICATION="en_US.UTF8"
LC_ALL=en_US.UTF8

改动后为
LANG=en_US.iso8859_1
LC_CTYPE="en_US.iso8859_1"
LC_NUMERIC="en_US.iso8859_1"
LC_TIME="en_US.iso8859_1"
LC_COLLATE="en_US.iso8859_1"
LC_MONETARY="en_US.iso8859_1"
LC_MESSAGES="en_US.iso8859_1"
LC_PAPER="en_US.iso8859_1"
LC_NAME="en_US.iso8859_1"
LC_ADDRESS="en_US.iso8859_1"
LC_TELEPHONE="en_US.iso8859_1"
LC_MEASUREMENT="en_US.iso8859_1"
LC_IDENTIFICATION="en_US.iso8859_1"
LC_ALL=en_US.iso8859_1

把export LANG=en_US.iso8859_1  export LC_ALL=en_US.iso8859_1 写入/etc/profile重启成功。

阅读更多
个人分类: JAVA相关
下一篇更改IE查看源文件编辑器
想对作者说点什么? 我来说一句

mysql乱码mysql乱码

2011年06月02日 26KB 下载

mysql乱码问题解决

2010年07月27日 3KB 下载

MYsql乱码MYsql乱码MYsql乱码

2009年07月01日 8KB 下载

MySql乱码问题解决方法

2014年03月05日 6KB 下载

mysql中文乱码的解决方法

2016年11月17日 317KB 下载

mysql乱码解决方案

2011年11月16日 682B 下载

没有更多推荐了,返回首页

关闭
关闭