python3中的编码、字符串编码等

本文详细介绍了Python3中字符串的编码方法,包括如何将Unicode字符串转换为不同编码格式的字节串,以及如何将字节串解码回Unicode字符串。此外,还介绍了一个实用技巧:利用chardet模块检测字节串的编码格式。

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

首先python3中字符串的默认编码刚完事就是Unicode,所以可以直接对python3中的字符串使用内建方法.encode()来定义字符串的编码格式。

>>> a="nihao"
>>> ab=bytes(a,encoding='gbk')  #将Unicode格式的字符串转换成gbk编码之后的字节,英文不变
>>> ab
b'nihao'
>>> c="你好"
>>> cd=bytes(c,encoding='gbk')#Unicode下的字符,一个汉字对应gbk编码的两个字节
>>> cd
b'\xc4\xe3\xba\xc3'
>>> str(cd,encoding='gbk')#将字节转化成字符串
'你好'
>>> str(b'\xc4\xe3',encoding='gbk')
'你'
>>> len(c)
2
>>> cd
b'\xc4\xe3\xba\xc3'
>>> ce=c.encode('gbk')#将字符串c采用gbk编码得到它的字节串
>>> ce
b'\xc4\xe3\xba\xc3'
>>> ce.decode('gbk')#讲字节串解码成Unicode,这里的参数是为了说明当前字节串是通过何种编码方式得到的
'你好'
>>>

还有一个小技巧,查看当前字节串(字符串编码过后的字节串)采用的编码格式的话,需要导入chardet模块

import chardet
>>> ss=bytes("你好",encoding="utf-8")
>>> chardet.detect(ss)
{'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
>>> ss
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> chardet.detect(b'\xe4\xbd')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>> chardet.detect(b'\xe4\xbd\xe5')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>> chardet.detect(b'\xe4\xbd\xa0')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>> ss
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> chardet.detect(b'\xe4\xbd\xa0')
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
>>>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值