WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

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

文件操作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%的数据库存储空间,因此并非推荐使用,仅供对国际兼容性有特殊要求的用户使用。

 


__EOF__

本文作者Ambitious
本文链接https://www.cnblogs.com/ambitiousPlus/p/16056532.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Ambitious~  阅读(1396)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示