Python编码utf-8时获取unicode文本

时间:2014-04-14 02:47:12

标签: python unicode utf-8

我使用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 ,而不是当我运行一些中文该程序时。如果我想收到一些中文,我该怎么办?非常感谢!

1 个答案:

答案 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()中),否则这可能会导致错误。