读取文件转码问题报‘UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa8 in position 4917: invalid start byte’错误
读取文件,并解析内容,但是有些文件的格式不是utf-8,导致读取失败,无法继续
原来的代码
with open(r'test.csv','r',encoding='utf-8') as f:
data = f.readlines()
print(‘data’)
此时如果test.csv不是utf-8格式就好报错。
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa8 in position 4917: invalid start byte
解决方法
with open(r'test.csv','r',encoding='utf-8') as f:
data = f.readlines()
改为如下即可解决问题:
with open(r'test.csv','r',encoding='utf-8',errors='ignore') as f:
data = f.readlines()
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用