使用mysql的时候发现中文会乱码,中文显示为问号,网上找了资料但都没能成功,在多次查找资料和设置后终于解决了这个问题
首先我们要选择字符编码问题,因为mysql默认的编码是latin1,要想显示中文那么我们可以设置它的默认编码为utf8或者gbk或者其它编码,这里我们设置成utf8,以debian为例,mysql版本号为5.5.31
然后我们修改/etc/mysql/my.cnf文件
在[client]下面添加
default-character-set = utf8
在[mysqld]下面添加
character_set_server=utf8
default-storage-engine=InnoDB
collation-server=utf8_general_ci
注意这里的character_set_server,据说是5.5以后的版本才有的,5.5版本之前并不是这个参数
然后我们重启下mysql
sudo service mysql restart
我们可以查看下
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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
可以看到已经设置默认为utf8了