微信公众号接口 添加菜单时中文的问题(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)