一般很少遇到字符编码的问题,默认都是utf8,但是这次小程序却是遇到了小程序的客服前端不解码的问题。
收到一大堆经过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编码进行默认的utf8编码:
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)