‘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’编解码器无法解码位置2的字节0xad:非法的多字节序列文件包括两种类型:文本文件和二进制文件。文本文件:一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。二进制文件:直接
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xad in position 2: illegal multibyte sequence
翻译:'gbk’编解码器无法解码位置2的字节0xad:非法的多字节序列
文件包括两种类型:文本文件和二进制文件。
文本文件:一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。
二进制文件:直接由比特0和比特1组成,没有统一字符编码。
两者最主要的区别在于是否有统一的字符编码。
同时我发现只有要打开的文档中存在中文时才会报错。
当要打开的
当要打开的文档中如上所述只有英文时,原出错代码能正常运行,只有要打开的文档中存在中文时,程序才会报错。
有以上定义可知出错原因及解决方案:
错误原因:txt文件是utf-8编码,用文本文件方式打开时,编码需要转为utf-8,而用二进制文件打开时,则不需要转。
解决办法:在以“rt”方式的open方法中多加一个参数:encode = “UTF-8”,而在以“rb”方式的open方法中不用。
改为:
以上情况只针对打开的文档中存在中文的情况
如果要打开的文档中只有英文,则一般不会出错。
更多推荐
所有评论(0)