中文内容,写到中文文件名的文件,报如下错误:
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 sysimport iosys.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
此方法奏效,但原理不明。
本文发布于:2024-01-29 14:08:49,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650853115827.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |