|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码::
f = open('e:\\abc.txt',mode = 'r',encoding = 'utf-8')
content = f.read()
print(content)
f.close()
出错提示:
line 2, in <module>
content = f.read()
File "C:\Python34\lib\codecs.py", line 319, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 2: invalid start byte
本帖最后由 jackz007 于 2018-9-16 11:53 编辑
出错原因是你要读取的文件 'e:\\abc.txt' 中含有非 utf-8 编码字符,通常的原因是,中文版 Windows 缺省编码一般是 gbk 而不是 utf-8,也就是说,你保存的 txt 文件采用的是 gbk 字符编码。导致你的程序在读取文件并按照 utf-8 进行字符解码的时候出现了非预期的问题。
解决方法,修改这一句:
f = open('e:\\abc.txt',mode = 'r',encoding = 'utf-8')
改为:
f = open('e:\\abc.txt',mode = 'r',encoding = 'gbk')
另外,如果程序开头有
#coding:utf-8
语句,最好改为
#coding:gbk
如果没有,就添加,因为程序中还有文件内容显示的操作。
当然,如果不想修改程序,那就得把 'e:\\abc.txt' 重新另存为 UTF-8 编码的文件,用记事本就可以解决问题。
|
|