MySQL编码问题解决方法
- 登录MySQL数据库,查看MySQL的编码。
SHOW VARIABLES LIKE 'char%';
只要保证以下采用的编码方式一样,就不会出现乱码问题。
- character_set_client:你发送的数据必须与client指定的编码一致!!!服务器会使用该编码来解读客户端发送过来的数据;
- character_set_connection:通常该编码与client一致!该编码不会导致乱码!当执行的是查询语句时,客户端发送过来的数据会先转换成connection指定的编码。但只要客户端发送过来的数据与client指定的编码一致,那么转换就不会出现问题;
- character_set_database:数据库默认编码,在创建数据库时,如果没有指定编码,那么默认使用database编码;
- character_set_server:MySQL服务器默认编码;
- character_set_result:响应的编码,即查询结果返回给客户端的编码。这说明客户端必须使用result指定的编码来解码。
可以直接从源头上解决这个问题。那就是修改mysql默认的配置文件(即修改mysql配置文件/etc/my.cnf),把它的字符集修改成能够使用中文字符的UTF8就OK了。
//在my.cnf配置文件中进行如下配置即可
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
请注意这几个参数配置的位置,不然可能会启动不起来mysql服务。
然后重启mysql服务也会发现它的字符集是utf8。