【修复日常bug】node保存emoji微信表情到mysql数据库中

4 篇文章 0 订阅
1 篇文章 0 订阅

技术栈

MYSQL8.0

node版本:14.15.1

express依赖包:4.16.1

mysql依赖包:2.18.1

 

问题概述

错误信息:

{"code":"ER_TRUNCATED_WRONG_VALUE_FOR_FIELD","errno":1366,"sqlMessage":"Incorrect string value: '\\xF0\\x9F\\x99\\x89\\xF0\\x9F...' for column 'nickname' at row 1","sqlState":"HY000","index":0,"sql":"INSERT INTO wechat_user_info(openid,nickname,sex,language,city,province,country,headimgurl,privilege,created_at) VALUES('xxxxxxxxxxxxxxxxx','Rohlin🙉🙈🙊',1,'zh_CN','深圳','广东','中国','https://thirdwx.qlogo.cn/mmopen/vi_32/4P7a5qOVkVBWAoMd8Hc2yvaQxRhSib4NicCtf3HesP98m0S0LV2ibeJa1RR3TwEcONyVfFlLsHPh1htaqPcGrOo1Q/132','','2021-06-21 14:38:36.850')"}

nickname字段存在emoji表情,导致存入mysql数据表失败;

 

解决方案

排查一:数据表中nickname字段字符集是utf8mb4是正常的,并非utf8,因为utf8不支持4个字节的表情;

 

排查二:可以直接通过sql语句插入表情,排查也无问题;

 

已经基本排除是数据表问题;

经过一番摸索后,发现需要在配置node连接mysql的时候加上charset:'UTF8MB4_UNICODE_CI',修改后重新npm run start,成功解决;

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值