• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
宇之翼
Astrowings
博客园    首页    新随笔    联系   管理     

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"\xe5\xae\x87\xe7\xbf\xbc",
    "sex": 1,
    "language": "zh_CN",
    "city": "hebei",
    "province": "Beijing",
    "country": "CN",
    "headimgurl": "http:\\/\\/wx.qlogo.cn\\/mmopen\\/PqN59rHCA5PMhL\\/0",
    "privilege": [],
    "unionid": "???****???lsadf????"
}

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

解决办法:

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

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

posted @ 2017-03-03 11:36  宇之翼  阅读(1053)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3