您的位置:首页 > 数据库 > MySQL

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

2005-03-03 18:52 183 查看
一个两年前的项目因要进行更新维护需要重新配一个测试环境。
原环境为:
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重启成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: