MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法

时间:2022-04-03 06:32:45

一、MySQL 查询表数据中文乱码问题及解决方法

DOS命令行下 连接 MySQL 数据库,进行 查询表数据操作 出现中文乱码,

如下图:

MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法


出现这种情况的原因是:character_set_results = utf8;

可以使用语句查询 character_set_results 的参数,查询语句:show variables like 'character%';

查询结果如下图:


MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法


解决办法有两种,一种是临时改变 results 参数,另一种是在MySQL安装目录下的 my.ini 文件中修改 results 参数。

本人使用第一种,个人感觉修改 my.ini 文件中的参数,会导致别的数据库或表数据出现异常,只是个人看法,毕竟我只是刚刚开始学习MySQL。


第一种解决办法:

直接在dos命令行下输入:set character_set_results=gbk;

就可以了,当然这只是临时修改,作用区域就只在当前 命令窗口下。这时你可以再尝试 查询语句。

结果如下图:

MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法



第二种解决办法:

修改 MySQL 目录下 my.ini 文件对应参数。


MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法


找到如图所示的 my.ini 文件打开进行修改。


MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法


把 utf8 改为 gbk 就OK了。修改之后重启 MySQL服务器。

使用 services.msc 命令打开服务 找到 MySQL 服务器 重启就可以。


二、插入中文 报错Incorrect string value问题解决方法


错误如下图所示:


MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法


出现这种错误的原因是:character_set_client = utf8;

可以使用语句查询 character_set_client 的参数,查询语句:show variables like 'character%';

查询结果可以参考上一个问题 图片。


解决办法有两种:一种 临时修改,另一种 在MySQL安装目录下 修改 my.ini 文件参数。

注意点在上一个问题中已经提到过。所以在这直接写解决办法。


第一种解决办法:


直接在dos命令行下输入:set character_set_client=gbk; 然后再次执行 插入中文数据操作。

操作如下图:

MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法



注意:这只是临时修改,作用域只在当前命令提示框。


第二种解决方法:和 上一个问题的解决方法相同,一模一样,不用担心什么。在这我就不再重复。望大家谅解。


最后,以上解决问题的方法,只是本人的个人观点,也参照了网上许多前辈们的解决问题的办法。如果有不周到的地方,还望谅解。谢谢大家观看!