‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xad in position 2: illegal multibyte sequence
‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法_第1张图片

翻译:'gbk’编解码器无法解码位置2的字节0xad:非法的多字节序列
文件包括两种类型:文本文件和二进制文件。
文本文件:一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。
二进制文件:直接由比特0和比特1组成,没有统一字符编码。
两者最主要的区别在于是否有统一的字符编码。

同时我发现只有要打开的文档中存在中文时才会报错。
当要打开的‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法_第2张图片
当要打开的文档中如上所述只有英文时,原出错代码能正常运行,只有要打开的文档中存在中文时,程序才会报错。

有以上定义可知出错原因及解决方案:
错误原因:txt文件是utf-8编码,用文本文件方式打开时,编码需要转为utf-8,而用二进制文件打开时,则不需要转。
解决办法:在以“rt”方式的open方法中多加一个参数:encode = “UTF-8”,而在以“rb”方式的open方法中不用。
‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法_第3张图片
改为:
‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法_第4张图片

以上情况只针对打开的文档中存在中文的情况
如果要打开的文档中只有英文,则一般不会出错。

你可能感兴趣的:(‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法)