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

本文详细记录了解决在特定环境下使用Python处理中文字符时遇到的UnicodeDecodeError错误的过程,包括尝试各种常见解决方案无效后,最终通过修改Python安装目录下的encoding设置成功解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值