mysql客户端的字符集一般会跟随你的系统设定的字符集。比如你的Linux系统设置的字符集为gbk 则mysql客户端的字符集也会是gbk
查看客户端的字符集语句
mysql> show variables like ‘character_set%‘;
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | gbk (客户端字符集) |
| character_set_connection | gbk (连接字符集) |
| character_set_database | utf8 (数据库字符集) |
| character_set_filesystem | binary |
| character_set_results | gbk (返回结果字符集) |
| character_set_server | latin1 (mysql服务器字符集) |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.6.23-win32\share\charsets\ |
+--------------------------+---------------------------------------+
8 rows in set (0.00 sec)
默认情况下 character_set_client,character_set_connection,character_set_results 会根据你系统的字符集,而设置成什么字符集
这是因为这样,mysql客户端的字符集和服务器端的字符集不同而导致的乱码
正常来说,以上的查询出来的结果,都需要设置为统一字符集。一般如果你的是Linux系统,只需要设置Linux系统字符集为utf-8那些字符集就会统一了