您当前的位置:首页 > 计算机 > 编程开发 > Python

处理Centos6和Centos7下,python3处理中文的神坑

时间:10-27来源:作者:点击数:

在一个阿里云的ecs服务器上,安装了centos6.5,然后部署Django2.0.4+python3.7.2,处理编码格式为UTF-8的HTTP请求,但奇怪的发现,将bytes类型的请求内容decode的时候会报解码错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

同样的程序,在windows Macos centos5.5 都没问题

网上一般的解决方案无非就是load(sys)或者代码加上# -- coding: utf-8 --这种,但这是python2时代的解决方案,完全不起作用

还有一种方式是改系统编码的方式/etc/sysconfig/i18n 也不起作用

最后真正能解决此问题的方式是:

找到python的安装目录的编码文件夹

cd /usr/local/python3.7.2/encodings/ 

备份一下ascii的编码文件

mv ascii.py ascii.py.bak

将utf8编码复制成ascii的

cp utf_8.py ascii.py

至此,解决问题,真是神坑

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门