1.1.1 现象
在表中插入的字符串包含中文字符,Select出来是乱码。
1.1.2 原因
用mysql –uroot –p命令进入,status命令查看Server的信息:
可以看到各个字符集都不是UTF8,因此会导致乱码。
也可以用SHOW VARIABLES LIKE 'character%';命令查询,可看到如下结果:
不同的机器可能不一样,但基本类似于上图,也就是各种字符集不全是UTF8。
1.1.3 解决
打开MySQL安装的根目录下的my.ini,增加如下配置项:
[client] default-character-set=utf8
[mysql] default-character-set=utf8
[mysqld] character-set-server=utf8 |
注意:mysqld下面的参数,网上有的文章说也是配置“default-character-set=utf8”,但是在我的机器上这样配置会导致MySQL启动失败,因此一定要按上表中的方式配置。
修改完毕my.ini后,重启MySQL,用status命令查看:
已经全部都是UTF8字符集了。
这样修改后,新建的表,默认就都是UTF8字符集了,而在此之前建的表,还是之前的字符集,需要另外处理。
本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/1775896,如需转载请自行联系原作者