Python教程

Python文件操作—UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 22: ill

本文主要是介绍Python文件操作—UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 22: ill,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文件操作with open() as 时报错

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 22:
 illegal multibyte sequence

 

解决办法一:在后面加上文件编码格式encoding = ‘utf-8’

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

 

解决办法二:

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

 

utf-8和gbk编码

  GBK: 专门用来解决中文编码,双字节。是在国家标准GB2312基础上扩容后兼容GB2312标准。包含全部中文字符。

  UTF-8: 解决国际上制度的一种多字节编码,对英文使用8位(1个字节),中文使用24位(3个字节)来编码。

  对于英文字符较多的论坛适用于UTF-8节省空间。包含全世界所有国家需要用到的字符。

 

  GBK和UTF-8文字编码的特点:

    GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。

    至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。

  

GBK和UTF-8文字编码的区别:

    GBK包含全部中文字符;

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

    GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准;(好像还不是国家标准)

    UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。

    比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。

    所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。

  注意:

    UTF-8版本虽然具有良好的国际兼容性,但中文需要比GBK/BIG5版本多占用50%的数据库存储空间,因此并非推荐使用,仅供对国际兼容性有特殊要求的用户使用。

 

这篇关于Python文件操作—UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 22: ill的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!