Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Database/JDBC/SQL/JDO/Hibernate
» MySQL
打印话题 寄给朋友 订阅主题 |
作者 | Mysql的中文问题解决办法,client+jdbc |
devil4heaven
发贴: 11 积分: 0 |
于 2004-04-03 11:21
最近准备更换一个Oracle部分表格到Mysql,正在进行相关测试工作,一个明显问题就是字符转换问题,一个下午的时间搞定之,解决方式如下: Server: RHAS3 updte1+Mysql 4.0.18(bin方式安装,默认字符为latin1,同时支持其它字符集GBK等等),RHAS3 安装语言为US_EN Client测试: 创建用户后,远程(win2k3 CN)mysql -h 192.168.10.x -u test -p连接后,show status,显示server端字符集为latin1,create table test(chinese varchar(100)),插入中文数据insert into test values('中文'),select查看中文正常,通过mysql客户端连接使用中文正常 jdbc测试: RHAS3+Tomcat4.1.30+Sun JDK1.4.2_04,系统默认语言US_EN,使用mysql Connector/J,版本为3.0.11-stable,注意这是mysql官方网站提供的最新jdbc驱动,利用Tomcat自带的DHCP1.1,建立JDBC DataSource,连接url为 jdbc:mysql://localhost:3306/test?autoReconnect=true,然后简单的jsp post提交简单中文,中文转换(jsp打印正常),连接数据库,写入mysql,成功,用mysql client连接后再查看,已经是乱码了! 以为是mysql字符的问题,然后更改/etc/my.cnf,添加 default-character-set = gbk,重新启动mysql,此时数据库默认字符为GBK字符集,重复上面的jdbc测试,这次简单中文正常了 但出来个新问题,对于稍微长一点的中文字符post提交后,居然出exception,java.lang.StringIndexOutOfBoundsException错误,而且只要中文字符超过2个,就出现以上错误,检查编译后java源码,开始怀疑是jdbc drive的错误,上http://bugs.mysql.com,最终得到的结果如下http://bugs.mysql.com/bug.php?id=3288,的确是Connector/J 3.0.11stable的bug,到http://downloads.mysql.com/snapshots.php下载最新的jdbc Driver驱动,安装再次测试,中文正常,测试text字段,大长度中文插入显示均已经正常。 总结:mysql bin package安装后,默认字符集为latin1,此时最好更改其为GBK,JDBC连接时,还是建议使用最新的Mysql官方驱动(别用3.0.11stable),毕竟旧的MM Mysql驱动已经不被支持了,这样JDBC只要写入mysql时转码一下即可,以后从数据库里用JDBC、Mysql Client等读取中文数据都不用再次转码。用惯了Oracle,习惯在sqlplus里直接看到中文数据 关于女孩子从事软件开发的问题 |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
11147 | Mysql的中文问题解决办法,client+jdbc | devil4heaven | 1323 | 2004-04-03 11:21 |
8805 | Re:Mysql的中文问题解决办法,client+jdbc | alin_ass | 10 | 2004-04-13 12:58 |
8777 | Re:Mysql的中文问题解决办法,client+jdbc | alin_ass | 46 | 2004-04-13 13:04 |
8825 | Re:Mysql的中文问题解决办法,client+jdbc | jorrey | 116 | 2004-04-13 14:43 |
8547 | Re:Mysql的中文问题解决办法,client+jdbc | panjiandong | 25 | 2004-05-15 23:20 |
8713 | Re:Mysql的中文问题解决办法,client+jdbc | 空心菜 | 72 | 2004-05-18 18:06 |
8701 | Re:Mysql的中文问题解决办法,client+jdbc | coolnight | 8 | 2004-06-22 18:48 |
8854 | Re:Mysql的中文问题解决办法,client+jdbc | helloworld | 35 | 2004-06-22 20:10 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |