Windows使用python3打开中文文件时报错

在Windows时打开中文文件时会报错

UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 7440: illegal multibyte sequence

而在Linux中正常。

这是因为Python在Windows中文系统中默认使用gbk进行解码,而大部分文件是用utf-8编码的,导致不匹配。

一种解决方法是在open文件时加入encoding参数

with open(train_path, "r",encoding='utf-8') as f:

这种方法基本能解决大部分编码不一致的情况,即在open中根据文件的实际编码进行设置。

但这种方法需要修改代码,而且在Windows和Linux中使用两套写法会让人抓狂的。

好在Python3.7开始引入了UTF-8模式,通过在Windows环境变量中新增一个PYTHONUTF8值为1的变量,即可以让Python默认运行在utf-8编码模式下,是最一劳永逸的方法了。

原文地址:https://www.cnblogs.com/LukeStepByStep/p/14135296.html