获取Python编码为UTF-8时的unicode文本
我在使用 微信公众平台
发送一些内容。代码如下:
# 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。我该怎么做才能收到 一些中文 呢?非常感谢!
1 个回答
0
你可以像下面这样输出内容:
json.dumps(body, ensure_ascii=False)
根据Python文档(https://docs.python.org/2/library/json.html):
如果设置ensure_ascii为True(默认值),那么输出中的所有非ASCII字符都会被转义成\uXXXX的形式,结果就是一个只包含ASCII字符的字符串。如果设置ensure_ascii为False,写入到文件中的某些部分可能会是unicode类型。这通常是因为输入包含了unicode字符串,或者使用了编码参数。除非fp.write()明确支持unicode(比如使用codecs.getwriter()),否则很可能会导致错误。