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重启成功。
原环境为:
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重启成功。
相关文章推荐
- 使用正确bit数的dll 或 lib(Qt 访问MySQL连接失败的一个原因)
- C# Winform 使用 MYSQL 新增,读取数据乱码问题
- 使用MySQL构建一个队列表
- mysql 触发器使用实例(修改一个表内容的同时另一个表内容自动变化)
- 使用AJAX技术做一个无页面刷新的会员登录功能--解决中文乱码
- mysql 使用in()函数时的一个注意事项
- Mac OS X下使用MySQL出现中文乱码的解决办法
- asp+access中 打开网页时出现“操作必须使用一个可更新的查询”原因及解决办法
- 对于servlet转发后乱码的一个可能原因
- mysql使用过程中,为防止出现中文乱码需要注意的四个方面
- QT中使用MYSQL中文乱码解决方法(Linux)
- (原)VS2013在Release情况下使用vector有时候会崩溃的一个可能原因
- mybatis+mysql,mapper配置文件中使用中文会乱码
- mysql left join 慢 的一个原因
- mysql保存中文乱码的原因和解决办法
- PHP MYSQL乱码问题,使用SET NAMES utf8校正
- 使用 php Header 报错的一个原因
- BaseDao加强版,可连接sqlserver和mysql,使用时直接在main类调用即可,需在src目录下创建一个properties后缀的文件夹,用来存放数据库名称和地址,具体如下
- MySQL使用什么函数可以将出现的NULL改为一个默认值?
- 此地址使用了一个通常用于网络浏览以外目的的端口。出于安全原因,Firefox 取消了该请求。