第四章 - 文本和字节序列
文本和字节序列
人类使用文本,计算机使用字节序列 -——PyCon 2014
decode(解码, 给人看),encode(编码, 给机器看)
Python3
python3 有两种表示字符序列的类型: bytes(8位二进制) 、str(Unicode字节)
python3 中的解释器编码默认为:unicode
python3 编写的程序默认编码为:utf-8
在内存中统一使用Unicode存储,当需要保存到硬盘或进行传输时,才会转换为utf-8.
Python2
python2 有两种表示字符序列的类型: str(8位二进制)、unicode(Unicode字节)
使用缓存类对象创建bytes或bytearray对象时,始终复制源对象中的字节序列,与之相反memoryview对象允许在二进制数据结构之间共享内存。
结构体和内存视图
struct模块提供了一些函数,把打包的字节序列转换成不同类型字段组成的元组(socket解决粘包)。
import struct aa = struct.pack("i", 111111111) bb = struct.unpack("i", aa) print(bb) >>> (111111111,)