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'))
print(ord('A'))
print(ord('0'))
print(chr(97))
print(chr(65))
print(chr(48))
3. len()
print(len('acb'))
print(len('中国'))
print(len('abc'.encode('utf-8')))
print(len('中文'.encode('utf-8')))
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')
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')