微信の小さいプログラムの客服のニュースの中国語の文字化けして踏んだ穴


一般的に文字コードの問題に遭遇することは少なく、デフォルトはutf 8ですが、今回のウィジェットはウィジェットのカスタマーサービスのフロントエンドが復号しない問題に遭遇しました.
unicodeでコードされた中国語がたくさん届いて、ドキュメントを見てみると、小さなプログラムは正常な中国語を解析するプログラムとは違って、unicodeをデフォルトでトランスコードするので、djangoで処理するときは中国語のトランスコードに注意します.
    requests.post(url, data=json.dumps({
            "touser":openid,
            "msgtype":"text",
            "text":
            {
                "content": msgTemplates[body['Content']]
            }
    }, ensure_ascii=False).encode()
ensure_ascii=Falseというjsonに注意してください.dumpsのデフォルトパラメータはensure_ascii=Trueであり、ascii符号化によるデフォルトutf 8符号化ができないことを意味する:json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)