读取文件时,出现乱码或者UnicodeDecodeError: 'gbk' codec can't decode byte 0xXX in position XX: incomplete multibyte sequence
错误
这两个错误可能会出现一个,两个错误的出现的原因是一样的:当我们使用了一个不正确的编码方式去读取一个不是用这个编码方式编码的文件时,轻者出现乱码,重者出现UnicodeDecodeError
错误。
1.txt文件:
我爱Python
我学习Python
不积跬步,无以至千里
不积小流,无以成江海
>>> f = open('C:\\Users\\XiangyangDai\\Desktop\\1.txt')
>>> f.read()
Traceback (most recent call last):
File "", line 1, in
f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 18: illegal multibyte sequence
解决方法:
读取文件时,指定正确的编码方式:
>>> f = open('C:\\Users\\XiangyangDai\\Desktop\\1.txt', encoding='utf-8')
>>> f.read()
'我爱Python\n我学习Python\n不积跬步,无以至千里\n不积小流,无以成江海'
在使用with语句时,也是一样的,例如在第035讲:图形用户界面入门:EasyGui中,读取文档内容:
下面的内容于2018年12月10日更新:
其实说白了,上面出现的问题就是因为编码出错引起的,今天,我总结了遇到的所有编码方面的问题,写了一篇博客:
Python编码问题的解决方案总结
大家可以看一下,一定会更进一步的。