问题场景

mysql存进去的数据,有中文的字段变成了???的样式
在这里插入图片描述

问题分析

查看控制台,输入的sql语句是中文的,说明后台逻辑没有问题,在接口中取出数据
在这里插入图片描述
取出的数据是???,说明就是没存进去,不是类似二进制值的形式,不能转换为中文

从网上查找,大概有几种方法,没有解决我的问题,但也记录一下
1、将数据库编码改为utf-8
在navicat中右键数据库,编辑数据库
在这里插入图片描述
在这里修改字符集为utf-8
在这里插入图片描述
2、修改表和字段的字符集为utf-8
表的字符集不能后期可视化方式修改,用语句

ALTER TABLE "table_name" CONVERT TO CHARACTER SET utf8;

3、修改字段编码
在这里打开设计表
在这里插入图片描述
点击出现问题的字段,下面可以选字符规则
在这里插入图片描述

解决办法

在修改上述几项无效后,修改后台的配置数据库的部分,一般是url,我的是application.yml里的配置url里
在这里插入图片描述
在原来的语句中,如果有?,且?后有东西,就加个&然后在后面加

useUnicode=yes&characterEncoding=utf8

如果没有,就加个?再加上面那句
在这里插入图片描述
插入了中文,问题解决

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐