4. 字节串和字符串
字节串(bytes)和字符串(str)区别
bytes存储字节。
- 取值范围0~255。
str存储unicode字符。
- 取值范围0~1114111(0~0x10FFFF)。
- 使用ord()函数可以返回这个值。
字节串和字符串转换
字符串可以编码成为字节串,同时也可以再解码回字符串。
转换方法,如图:
编码、解码函数
函数
说明
str.encode(encoding='utf-8')
返回编码为 bytes 的字符串。
bytes.decode(encoding='utf-8')
返回解码为 str 的字节串。
编码格式encoding
encoding参数的取值如下:
'utf-8'、 'gb2312'、'gbk' 或 'gb18030'
汉字编码
- 国际编码(UNICODE)
- 'utf-8'。
- 信息产业部国标(GB)系列编码
- 'gb2312' -- 6000+个字;
- 'gbk' -- 20013个汉字;
- 'gb18030'-- 27000+个汉字。
示例
>>> s = '中国'
>>> b = s.encode()
>>> b
b'\xe4\xb8\xad\xe5\x9b\xbd'
>>> b.decode()
'中国'
>>> b2 = s.encode('gbk')
>>> b2
b'\xd6\xd0\xb9\xfa'
>>> b2.decode('gbk')
'中国'