微信小程序开发——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

猜你喜欢

转载自blog.csdn.net/k1507157/article/details/120886085
今日推荐