/ / Pythonがutf-8をエンコードするときにユニコードテキストを取得する - python、unicode、utf-8

Pythonがutf-8をエンコードするときにユニコードテキストを取得する - 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))

私は受け取ります u4e00u4e9bu4e2du6587 走ったときじゃない 中文 プログラム。受け取りたい場合はどうすればいいですか 中文?どうもありがとう !

回答:

回答№1は0

次のように本文をダンプすることができます。

json.dumps(body, ensure_ascii=False)

Pythonのドキュメントから(https://docs.python.org/2/library/json.html):

ensure_asciiがTrue(デフォルト)なら、all出力内の非ASCII文字はuXXXXシーケンスでエスケープされ、結果はASCII文字のみで構成されるstrインスタンスになります。 confirm_asciiがFalseの場合、fpに書き込まれたいくつかのチャンクはUnicodeインスタンスになる可能性があります。これは通常、入力にUnicode文字列が含まれているか、またはencodingパラメータが使用されているために発生します。 fp.write()が(codecs.getwriter()のように)Unicodeを明示的に理解していない限り、これはエラーの原因となる可能性があります。