mysql> set names utf8;#修改编码为utf8这些根本不管用,结果还是乱码。还有一些就是先看看数据库目前都是处于哪些编码状态:
mysql> show variables like '%character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql>然后使用类似如下的命令,将不是utf8的编码的,依次修改成utf8
mysql> set character_set_database=utf8;貌似这样的方法重启之后,又会还原。后来又看到一个方法,就是修改配置文件来完成的,这种我试了下,重启之后不会还原。
buzhidao@nongfushanquan-K55VD:~$ sudo /etc/init.d/mysql stop然后改配置文件
buzhidao@nongfushanquan-K55VD:~$ sudo gedit /etc/mysql/my.cnf然后添加下面的内容(末尾不要有多余的空格什么的,我不小心在末尾多敲一个空格,结果没生效):
character_set_server=utf8 init_connect='SET NAMES utf8'
最后打开mysql服务(网上是用 service mysql start,试了,用不了)
buzhidao@nongfushanquan-K55VD:~$ sudo /etc/init.d/mysql start
于是乎我就开始建表了,结果发现最后中文还是乱码,我就查看了一下建表的语法,发现默认编码还不是utf8,
然后我又新建一个表,这次我指定了表的编码,最后中文部分可以正常显示。
原文地址:http://blog.csdn.net/li_jun_09_05/article/details/45696587