阿里云RDS数据库代理连接进行读写分离导致查询utf8mb4编码的特殊表情字符乱码踩坑记录

博客讲述了作者在使用阿里云RDS进行读写分离时遇到的特殊表情字符乱码问题。问题定位到数据库代理的事务级连接池编码设置,默认为utf8而非utf8mb4。关闭事务级连接池后问题暂时解决,但阿里建议在低峰期升级内核以避免30S闪断。作者选择不使用连接池以防止数据库中断。
摘要由CSDN通过智能技术生成

Bug描述:

  线上发版一段时间后,接口查询RDS中含有特殊表情字符的字段内容出现乱码问题

 

Bug现象:

  如下特殊表情字符会返回为跟我??走吧

 

开始解决:

  因为数据库都是已经存进去了特殊表情字符的,在可视化的工具都可以直接看到,没有问题的。使用命令查看数据库的编码格式以及存储特殊表情字符的字段编码都是utf8mb4,所以开始从最外层代码开始排查定位问题。

--- 查看数据库编码
SHOW VARIABLES LIKE '%character%';
  • 首先觉得是接口返回的字符乱码问题,便对接口返回编码进行如下控制

@GetMapping(value = "/xxx", produces = "application/json;charset=UTF-8")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值