Python字符串之encode & decode

本文深入讲解了Python中字符串与字节串之间的编码转换方法,包括encode与decode的使用,以及如何处理解码错误,利用chardet库检测未知编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Encode

将str类型编码成bytes类型:

>>>strs = '中文English'
>>>strs.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87English'
>>>strs.encode('gb2312')
b'\xd6\xd0\xce\xc4English'
>>>bytes(strs,'utf-8')                                           
b'\xe4\xb8\xad\xe6\x96\x87English'

bytes()函数同str.encode()。

2. Decode

将bytes类型(如utf-8编码)解码成str类型:

>>>b'\xe4\xb8\xad\xe6\x96\x87ENGLISH'.decode('utf-8')             
'中文ENGLISH'
3. 解码错误情况

如果将utf-8编码的bytes类型解码成gb2312时出错,可通过第三方库chardet函数detect检测出编码方式。

from charted import detect
wd = '中华人民共和国'
wt = ws.encode('utf-8')
print(wt)
detect(wt)

将返回结果:

b'\xe4\xb8\xad\xe5\x8d\x8e\xe4\xba\xba\xe6\xb0\x91\xe5\x85\xb1\xe5\x92\x8c\xe5\x9b\xbd'
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

encoding的值为其检测出的编码类型,确认是该编码的置信度为confidence的值,此处将中文字符编码成utf-8后未能识别出语言。

下面,再将wd编码成gb2312,

wt1 = ws.encode('gb2312')
detect(wt1)

返回结果:

{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}

识别出语言为中文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值