微信公众号接口 添加菜单时中文的问题(errcode":40033 invalid charset)
错误:
{"errcode":40033,"errmsg":"invalid charset. please check your request, if include \\uxxxx will create fail!"}
由于dumps将dict转换成str时中文会被转换成unicode格式
所以在使用dumps转换时使用
ensure_ascii=False禁止中文转换
菜单参数:
menu={
"button": [
{
"type": "click",
"name": "随机电影",
"key": "电影+随机"
},
{
"type": "click",
"name": "作者",
"key": "作者"
},
{
"name": "MarkSS",
"sub_button": [
{
"type": "click",
"name": "邀请码",
"key": "邀请码"
},
{
"type": "click",
"name": "签到",
"key": "签到"
},
{
"type": "click",
"name": "私有节点",
"key": "私有节点"
},
{
"type": "click",
"name": "科学上网",
"key": "科学上网"
},
]
}]
}
接口测试:def createTable(request):
param = Params.menu
data = dumps(param, ensure_ascii=False) #dumps是将dict转化成str格式,loads是将str转化成dict格式
data=bytes(data,'utf8')
#params = urllib.parse.urlencode(param).encode('utf-8')
url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='+AccessToken
create_url = urllib.request.Request(url)
msg = urllib.request.urlopen(create_url, data)
return HttpResponse(msg)