Python-字符串编码

1. python中的编码

  • 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言
  • Python的字符串类型是str,在内存中以Unicode表示
  • 在网络传输数据,或者保存到磁盘时,需要将数据转换为以字节为单位的bytes
  • 在操作字符串时,我们经常遇到str和bytes的互相转换,为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换

2. ord()、chr()

'''
对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
'''
print(ord('a')) # 97
print(ord('A')) # 65
print(ord('0')) # 48

print(chr(97)) # 'a'
print(chr(65)) # 'A'
print(chr(48)) # '0'

3. len()

# 计算 str 的字符数
print(len('acb')) # 3
print(len('中国')) # 2

# 计算 bytes 的字节数
print(len('abc'.encode('utf-8'))) # 3,经过UTF-8编码后,1个英文字符占用1个字节
print(len('中文'.encode('utf-8'))) # 6,经过UTF-8编码后,1个中文字符占用3个字节

4. 编码【str–>bytes】

'''
以Unicode表示的str通过encode()方法可以编码为指定的bytes
    -- 纯英文的str可以用ASCII或者UTF-8编码为bytes,结果是一样的,因为UTF-8兼容ASCII
    -- 含有中文的str可以用UTF-8编码为bytes
    -- 含有中文的str不可以用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错
'''

s1 = 'abc'
s2 = '大中国'

s1.encode('utf-8')
s1.encode('ASCII')
s2.encode('utf-8')
# s2.encode('ASCII') # 报错

5. 解码【bytes–>str】

'''
	bytes.decode('utf-8')
'''

s1 = 'abc'
s2 = '大中国'
b1 = s1.encode('utf-8')
b2 = s1.encode('ASCII')
b3 = s2.encode('utf-8')

s1 = b1.decode('utf-8')
s2 = b2.decode('ASCII')
s3 = b3.decode('utf-8')
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值