UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character ‘u672c‘ in position 102: Body (‘本‘) is n(
Posted Jason_WangYing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character ‘u672c‘ in position 102: Body (‘本‘) is n(相关的知识,希望对你有一定的参考价值。
最近在使用wechatpy进行菜单设置时发现直接在把中文写入代码可以正常使用,但是一旦后台设置后再传到服务器就不能用了,报UnicodeEncodeError: 'latin-1' codec can't encode character '\\u672c' in position 102: Body ('本') is not valid Latin-1. Use body.encode('utf-8') if ou want to send it encoded in UTF-8.这个错误。
解决办法:这个其实就是编码方式错误,把引起报错的字符串进行转码即可:
'你的字符串'.encode("utf-8").decode("latin1")
class Modify_Menu(View):
client = getWxClient()
def get(self,request): #定义类试图的get方法
menu = client.menu.get()
return render(request,"weixin/modify_menu.html",{'menu_text':json.dumps(menu['menu'],indent=4)}) #当调用类视图的get请求时跳转到front/upload2.html
def post(self,request): #定义类试图的post方法
menu_text = request.POST.get('text_menu', '')
conditional_text = request.POST.get('conditional',False)
if not is_json(menu_text):
return HttpResponse('数据不符合json格式,请修改后提交')
temp = menu_text.encode("utf-8").decode("latin1")
client.menu.create(temp)
return HttpResponse('修改成功')
以上是关于UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character ‘u672c‘ in position 102: Body (‘本‘) is n(的主要内容,如果未能解决你的问题,请参考以下文章
UnicodeEncodeError:“latin-1”编解码器无法编码字符
“UnicodeEncodeError:‘ascii’编解码器无法编码字符”
Python请求:UnicodeEncodeError:'charmap'编解码器无法编码字符
python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't