[python错误]UnicodeDecodeError: 'gbk' codec can't decode byte...

出现此错误的原因是使用'gbk'解码时报错,存在一些字符不能使用gbk来解码。

 

首先,简体中文字符编码(ASCII扩展字符集)有下列几种:GB2312、GBK、GB18030。

GB2312: 中国国家标准总局在1980年发布的《信息交换用汉字编码字符集》,共收入汉字6763个和非汉字图形字符682个。

GBK:中国国家标准总局在1995年发布了《汉字编码扩展规范》(GBK)。GBK与GB 2312—1980国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC10646—1和GB 13000—1的全部中、日、韩(CJK)汉字,共计20902字。

GB18030: 有两个版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特点是在GBK基础上增加了CJK统一汉字扩充A的汉字。GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字。

其中GB18030兼容GBK和GB2312编码,在处理简体中文的时候,可以统一使用GB18030来读取GBK或者GB2312的文档。

 

在编写python脚本处理简体中文文档时,可以使用下面的方式来读取文档:

如使用:open('abc.txt', encoding= 'gb18030') 来读取文档。当遇到“GB18030”也无法编码的字符时,上面的代码会报错。可以尝试使用下面的代码来解决:

open('abc.txt', encoding= 'gb18030', error= 'ignore')

 

含编码检测及简体中文字符处理的完整例子:

CSV文件分割与列异常处理的python脚本

 

转载于:https://www.cnblogs.com/weiqi/p/8253019.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值