前言

今天在做java前后端分离项目的时候遇到了读取mysql中文乱码问题,首先在项目中的要求是通过springboot和mybatis-plus构建访问数据库,后面在通过浏览器访问固定地址读取查询表内容的时候(select * from hospital_set),出现的乱码问题(如下图所示)。

解决办法

可能性分析(1):

首先出现这种情况,你可能是因为使用了navicat软件,你直接在这个软件上面对创建的表进行了数据填写(如下图)。

因为是在这个软件上面直接填写的,所以你填写中文的格式默认是这个软件的编码格式。那么你在通过客户端读取表的时候当然会出现乱码啦!不管你怎么设置格式都没用。

这就需要我们去设置【编辑连接】了。如下图,在【高级】中将编码改为自动,这样就成功解决问题啦。

 

 然后我们再去读取数据,就能显示正常的中文了。

可能性分析(2):

如果还是不行,那么也有可能是因为你的mysql配置文件里面的一些配置没有改为utf8的格式

在cmd中通过命令show variables like 'char%';  显示编码格式。

 如果显示如下,那么就有问题了,可以发现他们的编码格式设置不都是utf8

 这就需要我们去更改配置文件内容了,首先找到路径C:\ProgramData\MySQL\MySQL Server 8.0下的my.ini文件。(如下图所示)

 然后拷贝my.ini文件到你的mysql安装目录下C:\Program Files\MySQL\MySQL Server 8.0

打开my.ini文件更改配置。在[client]、[mysql]、[mysqld]下分别加入如下内容:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8

保存文件,重启mysql。查看格式,如下图所示: 

这就彻底完美的解决了我们的乱码问题了!!!!

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐