UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 683: illegal multibyte sequence

读文件的时候出现编码错误,有两种方法。

第一种就是

f = open('test.txt','r',encoding = 'utf-8')
content = f.readline()

打开文件的时候就指定编码的类型,就可以避免出现类似的错误。

第二种就是

在读出文件之后利用encode函数再将其转换为utf-8的模式就可以了

s.decode('gbk', ‘ignore').encode('utf-8′) 
因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常; 
如果设置为ignore,则会忽略非法字符; 
如果设置为replace,则会用?取代非法字符; 
如果设置为xmlcharrefreplace,则使用XML的字符引用。

两种方法都可以,一般出现编码错误的时候都是转换一下类型就OK了

你可能感兴趣的:(UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 683: illegal multibyte sequence)