UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa6 in position 34: illegal multibyte sequence

python读取TXT文件时出现错误

with open(r'高等数学.txt') as file_object:
    contents=file_object.read()
    print(contents)

报错:

UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa6 in position 34: illegal multibyte sequence_第1张图片

原因:

Unicode的解码(Decode)出现错误(Error)了,以gbk编码的方式去解码(该字符串变成Unicode),但是此处通过gbk的方式,却无法解码(can’t decode )。“illegal multibyte sequence”意思是非法的多字节序列,即没法(解码)了。
此种错误,可能是要处理的字符串本身不是gbk编码,但是却以gbk编码去解码 。比如,字符串本身是utf-8的,但是却用gbk去解码utf-8的字符串,所以结果不用说,则必然出错。对于本例,读取文件中有中文,导致出错。

解决办法:

打开文件时以utf-8格式打开。

with open(r'高等数学.txt', encoding='utf-8') as file_object:
    contents=file_object.read()
    print(contents)

UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa6 in position 34: illegal multibyte sequence_第2张图片

参考博客:https://blog.csdn.net/weixin_43937178/article/details/89811155

你可能感兴趣的:(python,乱码,python,gbk)