快速解决 - 设置客户端与服务器通讯的编码。
set names gbk;
详细解释原因:
我们使用windows命令行去连接Mysql服务器或者发送命令都是连接服务器的连接层。
接下来我们先看看客户端发送用的什么编码
再看一下Mysql服务器接收和返回都是用的什么编码
执行命令:
show variables like 'character_set_%';
既然接收和返回编码与客户端不一致那我们就更改编码即可,客户端(也就是我们windows自带的那个命令行肯定是不能修改编码的),所以我们来修改Mysql服务器的接收和返回编码。
1. 修改接收客户端指令的编码
set character_set_client=gbk;
2. 修改返回给客户端数据的编码
set character_set_results=gbk;
显然以上修改比较麻烦,所以就通过如下命令一次性设置
set names gbk;
总结:
1. 设置什么编码取决于客户端的编码
2. windows自带的命令行是GBK,所以要改为GBK通讯
3. 比如那些数据库管理软件默认就是utf8所以无需修改
4. 永久生效就修改my.ini配置文件,然后重启Mysql