中文内容,写到中文文件名的文件,报如下错误:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position
0: ordinal not in range(128)
-
开始以为是自己写的python有问题,但后来发现同样的代码在其它电脑上运行正常。。。
-
按网上说的方法什么load(sys),或者加# -- coding: utf-8 --的方式,虽说都知道是python2年代的东西。但就当病急乱投医了。结果依旧无效。
-
怀疑CentOS7 的LANG问题,结果改成 Zh_cn.utf8,也没用
-
增加如下代码,
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
此方法奏效,但原理不明。