python运行显示编码错误

时间:2021-08-02 08:17:26

python中运行显示编码错误一般有2种原因:

编码与译码的方式不一致

在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息:

SyntaxError: Non-ASCII character '\xe5' in file *******

【原因】

python解释器的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符。

【解决办法】

在Python源文件的最开始一行,加入一句:

# coding=UTF-8(等号换为”:“也可以)

注意:等号左右两边没有空格

补充:

.py文件的编码方式由编辑器决定,而在中文环境下,编辑器的编码方式一般是utf-8,python解释器在译码时,译码方式为要与源文件的编码方式一致。

具体可参考官方文档:https://www.python.org/dev/peps/pep-0263/

存在部分字符无法译码的情况

编码与译码的方式是一致的,但是部分字符无法译码。

读取中文txt文件时,经常会出现: ‘gbk' codec can't decode bytes in position 31023: illegal multibyte sequence

这种情况就是文本里含有gbk编码方式中没有的字符

最好的解决办法:

使用gb18030编码方式,因为gb18030编码方式包含gbk,支持的字符数更多,并且加入'ignore'忽略无法读取的字符。

例如;

open('../hlp_stop_words.txt', encoding='gb18030', errors='ignore')

补充

python2中的文件路径不要有中文,会出现一些奇特的bug,但是python3中就没有这种情况。