UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4 in position xx

代码如下:

f = open('liudehua.txt', 'r')
str = f.read()

结果报错如下:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4 in position 521

分析原因:

我的txt文件存的是utf8编码,打开文件的时候没有指定编码,文件虽然是utf8编码,但是在计算机里面存储的还是unicode编码数据,即计算机是将文件的内容按照utf8编码成unicode后存到了硬盘上,而现在执行f.read()的时候,因为没有指定编码,f.read()可能是发现文件中有中文,所以按照gbk来试图将unicode解码,但是因为文件本身是utf8的,所以解码失败,所以报了UnicodeDecodeError(当然这其实只是我的猜测,但是应该也八九不离十吧)

你可能感兴趣的:(Python)