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

UnicodeEncodeError: 'ascii' 编解码器无法编码字符 u'\u2026'

Python通过'Git Bash'打印Unicode字符串得到'UnicodeEncodeError'