python运行显示编码错误
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中就没有这种情况。