微信公众号返回值中文乱码问题

微信的又一大坑
接口 https://api.weixin.qq.com/card/membercard/userinfo/get" 获取会员卡的用户信息,返回值如果包含中文,将是如下的乱码:

乱码

解决方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import requests
import json

def get_post_data(url,params=None,data=None):
'''
获取POST URL的结果
'''
if params is None: params={ }
params['access_token'] = '6_3cv3MGpvQHZoSRFGuiJiDf8vI5mK2dnUX51VXBYHBH5yK9JlhJC6lzAp3CoFAV5MVFTBqPhqpV1QUQtub51L20ax_ZYhfu_Zeqq98xYzAfjI3Zzd572lMXTBkbloG1SPizuhry-YfTxpoxVdKCQiABAVNB'
p = '&'.join(['{0}={1}'.format(key,value) for key,value in params.items()])
url = '{0}?{1}'.format(url,p)
headers={'Content-type': 'text/plain;'}

res = requests.post(url,data=data,headers=headers)
#res.encode = 'utf-8'
return res


data = {
"card_id": 'pMkYv1ifTOHCFrGSbnZcVQGVL1GI',
"code": '016918931677'
}
res = get_post_data('https://api.weixin.qq.com/card/membercard/userinfo/get',data=json.dumps(data)).json()
print(res)

在response上设置编码格式为utf-8。

你的支持我的动力