python2 微信三方登录 中文乱码

在微信开发中我们会经常需要获取用户的信息。

地址为:

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

将其中的access_token替换为我们的access_token, openid为关注用户的openid就可以获取到用户的信息了.

{
    "openid": "?????alasd??????",
    "nickname": u"xe5xaex87xe7xbfxbc",
    "sex": 1,
    "language": "zh_CN",
    "city": "hebei",
    "province": "Beijing",
    "country": "CN",
    "headimgurl": "http:\/\/wx.qlogo.cn\/mmopen\/PqN59rHCA5PMhL\/0",
    "privilege": [],
    "unionid": "???****???lsadf????"
}

但是当我们打印它时就会显示乱码

解决办法:

  • 仔细分析unicode编码应该是u'u5b87u7ffc'
  • utf8编码应该是"xe5xaex87xe7xbfxbc"
  • 这个case是utf8被存到unicode对象里面, 解决方法如下:
name=userinfo['nickname'].encode('raw_unicode_escape')

参考:
https://docs.python.org/3/library/codecs.html#text-encodings

原文地址:https://www.cnblogs.com/zyu911/p/6495541.html