python源码编译安装 gb18030_Python3 处理 gb18030 乱码

本文介绍了在Windows 10环境下,针对Python 3.6.3如何处理GB18030编码问题。详细讲解了GB18030编码的结构,并给出了两种处理解码错误的方法:自定义replace_errors和编码清洗。提供了修复GB18030文件的代码示例,通过读取文件、识别并转换乱码,确保文件内容正确解码。
摘要由CSDN通过智能技术生成

【环境】Windows 10 x64

Python 3.6.3

【关于 gb18030 编码】GB 18030 wiki:https://zh.wikipedia.org/wiki/GB_18030

单字节,其值从0到0x7F。

双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。

四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节从0x81到0xFE,第四个字节从0x30到0x39。

【解码错误的处理方式】错误:1UnicodeDecodeError:'gb18030' codec can't decode byte0xff in position129535: illegal multibyte sequencebytes.decode

codecs.register_error 样例

异常对象:UnicodeDecodeError

方案一:自定义 replace_errors:

import codecs

# gb18030 乱码 handler

def WalkerGB18030ReplaceHandler(exc):

print('exc.start: %d' % exc.start)

print('exc.end: %d' % exc.end)

print('exc.encoding: %s' % exc.encoding)

print('exc.reason: %s' % exc.reason)

text = ''

for ch in exc.object[exc.start:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值