/*
前面写一个项目的时候MySQL出现了各种问题,有一些以前都没注意也没遇到过,现在终于解决了,在这里和大家分享一下。这里都是用的utf8的编码格式。
*/
mysql中乱码多半是这几种情况:
1:MySQL中设置的编码有问题,可以设置为utf8,一般都不会错,这里。
2:客服端程序(如Java)和链接语句设定有问题。
DriverManager.getConnection("jdbc:mysql://localhost:3306/lost_found<strong>?useUnicode=true&characterEncoding=utf-8</strong>","root",null);
如果是在hibernate中hibernate.cfg.xml配置就应该为
<property name="connection.url">
jdbc:mysql://localhost:3306/another_lost_found?useUnicode=true&characterEncoding=UTF-8
</property>
3:server设定有问题,一般都是因为设定为了latin1.
这里就是我犯错的地方了,
mysql中命令行模式输入show variables like "%char%";可看到各个配置,如:
mysql> show variables like "%char%";
+--------------------------+-----------------------------------------------+
| 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 | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.5.16\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set
可以看到这里的character_set_server 的值为latin1,我们将它改为utf8即可。这里只讲我用的一种方法:
在命令行运行set character_set_server=utf8;即可。可看到:
mysql> show variables like "%char%";
+--------------------------+-----------------------------------------------+
| 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 | c:\wamp\bin\mysql\mysql5.5.16\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set
然后就会发现中文乱码已经解决了。
有时并不需要修改这些也不会出现乱码,这里只是给出的几个建议。
当然也可以一劳永逸的修改my.ini (好像还有一个类似的my.cnf文件),网上许多说my.ini在C:\ProgramData\MySQL\MySQL Server 5.6\my.ini中,而我的则在C:\wamp\bin\mysql\mysql5.5.16\my.ini中。一些的版本中是找不到my.ini文件的,有时需要自己修改或者添加。
当然,如果你有,也可以按照相应的文档进行修改。因为没有试过。所以就不班门弄斧了。不过记得修改这些配置文件的时候一定要先备份。有备无患嘛。
my.ini配置文件中的详细解释可以在这里找到:http://blog.youkuaiyun.com/wclxyn/article/details/6840208