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

本文探讨了在Python中遇到‘gbk’解码错误时,如何正确选择GB18030编码处理简体中文文档,包括编码方式转换和异常处理技巧。重点介绍了GB2312、GBK、GB18030的区别及其在实际应用中的适用场景。
摘要由CSDN通过智能技术生成

出现此错误的原因是使用'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')

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值