centos7 python3 中文 “UnicodeDecodeError: 'ascii' codec can't decode byte...”解决方法

中文内容,写到中文文件名的文件,报如下错误:

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position
0: ordinal not in range(128)

  1. 开始以为是自己写的python有问题,但后来发现同样的代码在其它电脑上运行正常。。。

  2. 按网上说的方法什么load(sys),或者加# -- coding: utf-8 --的方式,虽说都知道是python2年代的东西。但就当病急乱投医了。结果依旧无效。

  3. 怀疑CentOS7 的LANG问题,结果改成 Zh_cn.utf8,也没用

  4. 增加如下代码,


 import sys
    import io
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

亦无效果。
最终,百度到一位高手的结果:
修改python安装目录下的encoding:

cd /usr/local/python3.6.7/encodings/ 
mv ascii.py ascii.py.bak           
cp utf_8.py ascii.py

此方法奏效,但原理不明。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值