微信小程序开发——MySQl存储微信昵称的特殊表情

项目场景:

    最近再写一个微信小程序涉及到获取用户的昵称等信息,起初的时候一切进展顺利,但测试的时候发现一个问题,我们的一位同学始终不能正常授权信息,查询数据库也没有相关的信息。刚开始认为是手机问题或者是代码问题。排查了半天问题还是没有解决。当出现问题的同学给我发测试截图的时候我发现了问题。


问题描述:

请添加图片描述
这张图看似没有任何问题,用户信息正常获取打印了,但仔细看你会发现,不对呀,它的昵称有一个表情,会不会是这个表情导致的呀。赶紧一波百度,还真是,我的数据库在存这个表情的时候报错,自然是存不进去的。百度找到了两种解决办法。


原因分析:

  • 方法一:改变数据库的编码方式和表的编码方式,据说的改成utf8mb4,我照做了,但是效果貌似并不好,甚至没有任何变化。
    请添加图片描述
  • 方法二:数据存储前进行编码,取出后再反编码,我这里是这样做的。这里用这种方法的时候我的数据库编码格式还是上面那样,没有影响
    请添加图片描述
    请添加图片描述

解决方案:

nickName.encode("unicode_escape")   # 编码
编码后的数据:b'Mr. Ke\U0001f506'
results[1].encode().decode("unicode_escape").replace('b', '').replace("'", ''),
解码后的数据:Mr.Ke(表情)

author: KK
time :2021年10月21日14:49:47
flag:8/30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值