mysql5.1.7-beta-log和mysql-connector-java-5.0.5中文乱码的解决(linux)
2007-04-07 00:38
417 查看
整整弄了一个晚上,终于解决了jdbc(mysql-connector-java-5.0.5)和mysql5.1.7通信中文乱码的问题!我的系统是linux(FC5)。在java中(eclipse环境)使用jdbc连接mysql。存储英文没问题,写(insert into)和读(select)都能正确显示,但是若其中带有中文字符就成乱码了。看了mysql5.1的中文手册没有解决,到网上查找了半天资料,最后终于成功。
我的经验是,在/etc/my.cnff文件中加上以下两行内容:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
这时,mysql系统,服务器、客户端、数据库、连接都使用utf8编码。可以用mysql>show variables like 'character%'看一下,我的系统是:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
第二步,在jdbc中的url结尾增加:
?characterEncoding=UTF8
这两步完成后,你用java编写的程序就能够正确读写mysql中文字符了。而且你用mysql客户端写入的中文数据也可正确读取!
需要注意的是,如果你在默认情况下,就建立好的数据库(create database %)可能要在上面的设置环境中重启mysql服务器后,重新建立才能正确读写中文字符!因此,这些配置应该在系统搭建之初就配置好!
另外,windows系统下我没事试,可能需要配置的文件和character_set都和linux下不一样,我推断应该是my.ini和gb2312!
我的经验是,在/etc/my.cnff文件中加上以下两行内容:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
这时,mysql系统,服务器、客户端、数据库、连接都使用utf8编码。可以用mysql>show variables like 'character%'看一下,我的系统是:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
第二步,在jdbc中的url结尾增加:
?characterEncoding=UTF8
这两步完成后,你用java编写的程序就能够正确读写mysql中文字符了。而且你用mysql客户端写入的中文数据也可正确读取!
需要注意的是,如果你在默认情况下,就建立好的数据库(create database %)可能要在上面的设置环境中重启mysql服务器后,重新建立才能正确读写中文字符!因此,这些配置应该在系统搭建之初就配置好!
另外,windows系统下我没事试,可能需要配置的文件和character_set都和linux下不一样,我推断应该是my.ini和gb2312!
相关文章推荐
- mysql5.1.7-beta-log和mysql-connector-java-5.0.5中文乱码的解决
- mysql5.1.7-beta-log和mysql-connector-java-5.0.5中文乱码的解决
- mysql5.1.7-beta-log和mysql-connector-java-5.0.5中文乱码的解决
- JAVA语言 mysql-connector-java 访问 Mysql中文乱码问题解决
- JAVA写入Mysql中文乱码解决方法
- JAVA通过JDBC连接Mysql获取中文输出乱码解决方法
- JAVA写入Mysql中文乱码解决方法
- JAVA压缩 解压缩zip 并解决linux下中文乱码
- QT中使用MYSQL中文乱码解决方法(Linux)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下Java中文字体不显示(解决图像中文乱码问题)
- 解决Xshell等Linux终端连接MySQL中文乱码问题
- linux下mysql中文乱码的解决方法
- Struts+Mysql+Tomcat5.0.28+mysql-connector-java-3.0.16-ga-bin.jar 国际化乱码解决方法
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Linux下解决Java程序中文字体乱码问题
- 关于解决Mysql中文乱码问题处理,Windows\Linux\Unix
- Linux中java log输出中文乱码 中文变“?”
- CentOS(Linux)中解决MySQL中文乱码
- linux下mysql中文乱码(中文问号)解决办法