windows命令行下 使用Mysql 无法插入中文字符或中文乱码问题

快速解决 - 设置客户端与服务器通讯的编码。

set names gbk;

windows命令行下 使用Mysql 无法插入中文字符或中文乱码问题

 

详细解释原因:

我们使用windows命令行去连接Mysql服务器或者发送命令都是连接服务器的连接层。

windows命令行下 使用Mysql 无法插入中文字符或中文乱码问题

接下来我们先看看客户端发送用的什么编码

windows命令行下 使用Mysql 无法插入中文字符或中文乱码问题

再看一下Mysql服务器接收和返回都是用的什么编码

执行命令:

show variables like 'character_set_%';

windows命令行下 使用Mysql 无法插入中文字符或中文乱码问题

既然接收和返回编码与客户端不一致那我们就更改编码即可,客户端(也就是我们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

 

上一篇:Java25.TomCat


下一篇:vscode Java Scanner 获取中文字符串println输出显示乱码问题分析和解决方案