python运行时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x89 in position 14: illegal ...的解决办法

在python第四次实验作业时:

python在读取文件时出现“UnicodeDecodeError: 'gbk' codec can't decode byte 0x89 in position 14: illegal multibyte sequence”错误

翻译为:UnoDeDebug错误:“GBK”编解码器不能解码位置14中的字节0x89:非法多字节序列

可能是解码的时候读取文件和编辑器所用的编码导致的(我读取的文档是UTF - 8,但pycharm是GBK)。

解决办法:

  第一种:

FILE_OBJECT= open('order.log','r', encoding='UTF-8')

 

  第二种:

FILE_OBJECT= open('order.log','rb')

GBK和UTF - 8的区别:

  1. GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)。GBK编码专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。
  2. UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8 节省空间。另外,如果是外国人访问你的GBK网页,需要下载中文语言包支持。访问UTF-8编码的网页则不出现这问题。可以直接访问。
  3. GBK包含全部中文字符;

  4. UTF-8则包含全世界所有国家需要用到的字符。

    python运行时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x89 in position 14: illegal ...的解决办法_第1张图片

扩展资料

      网页编写UTF-8和GBK哪个编码好,根据个人需要,如果你主要做中文程序的开发,客户也主要是中国人的话就用GBK吧,因为UTF-8编码的中文使用了三个字节,用GBK节省了空间。如果做英文网站开发,还是用utf-8吧,因为utf-8中英文只占一个字节。GBK中英文也是两个字节的,并且国外客户访问GBK要下载语言包。如果你的网站是中文的,但国外用户也不少,最好也用UTF-8的吧。

你可能感兴趣的:(python学习)