获取Python编码为UTF-8时的unicode文本

1 投票
1 回答
656 浏览
提问于 2025-04-18 02:38

我在使用 微信公众平台 发送一些内容。代码如下:

# 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()),否则很可能会导致错误。

撰写回答