Mysql中文数据变成问号解决办法

问题场景

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

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

  • 13
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值