我使用Wechat Public platform
发送一些内容。代码是:
# coding:utf-8
import os
import urllib2
import json
import httplib2)
content = "一些中文"
body = {
"touser":"abcdefg",
"msgtype":"text",
"text":
{
"content": content
}
}
access_token = '1234567890'
req_url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=' + access_token
method = 'POST'
headers['Content-Type'] = 'application/json'
headers['Accept-Charset'] = 'encoding=utf-8'
resp, token = http_obj.request(req_url, method, headers=headers, body=json.dumps(body))
我收到 \ u4e00 \ u4e9b \ u4e2d \ u6587 ,而不是当我运行一些中文该程序时。如果我想收到一些中文,我该怎么办?非常感谢!
答案 0 :(得分:0)
您可以按以下方式转储正文:
json.dumps(body, ensure_ascii=False)
来自python docs(https://docs.python.org/2/library/json.html):
如果ensure_ascii为True(默认值),则输出中的所有非ASCII字符都使用\ uXXXX序列进行转义,结果是仅包含ASCII字符的str实例。如果ensure_ascii为False,则写入fp的一些块可能是unicode实例。这通常是因为输入包含unicode字符串或使用编码参数。除非fp.write()明确理解unicode(如在codecs.getwriter()中),否则这可能会导致错误。