tornado使用中遇到的latin-1字符编码问题

错题记录。

环境:

        系统:Centos7.9

        python: 3.6

        tornado: 5.1.1

出错问题:

        前端调用tornado后台接口时,无法返回正确内容,看了下log,报错:

        Invalid x-www-form-urlencoded body: 'latin-1' codec can't encode characters

        全网搜了个遍,只要有类似的解决方法都试了一遍,最后忘了在哪来搜到的成功解决了该问题。

出错原因:

        解析参数时字符编码问题,因为参数里有中文。

解决方法:

        修改tornado的一个源文件 httputil.py,在这个目录:

         ...python路径/lib/python3.6/site-package/tornado/

        把759行改掉:

                原代码:                       

uri_arguments = parse_qs_bytes(native_str(body), keep_blank_values=True)

                改为:

uri_arguments = parse_qs_bytes(body.decode('latin1'), keep_blank_values=True)

                改完以后,重启服务,解决。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值