最近在unix系统下做一个管理系统,mysql不能插入读取中文的问题困扰了我好久。今天终于解决了这个问题,现在将这个解决方案整理了一下,希望能帮助一些读者,也为以后自己能参考一下。
1,查看mysql中的编码和eclipse的编码:
mysql中查看编码:show variables like 'chara%';
eclipse中查看编码:window-preferences-general-contenttypes中的text编码和java class file编码
2,在第一步中,你应该会发现两者的编码不同,然后你只要分别修改一下mysql和eclipse中的编码
eclipse中改编码:window-preferences-general-contenttypes中的text编码和java class file编码改为utf8或者GBK,然后点击update
mysql中改编码:set names utf8或GBK
在这里要注意的是eclipse中和mysql中的编码改的必须是一致的!
3,最后,在第二步的基础上,再具体修改数据库和表的编码,以及在jdbc连接数据库的uri后面加个声明语句
mysql中:alter database 数据库名 convert to character set utf8;
alter table 表名 convert to character set utf8;
eclipse中:在jdbc连接数据库的uri后面加上 ?useunicode=true&characterEncoding=utf8;
至此,你就可以顺利的在你的数据库中存取中文啦。