第四章 - 文本和字节序列

文本和字节序列

  人类使用文本,计算机使用字节序列 -——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,)

 

posted @ 2017-07-21 15:17  Vincen_shen  阅读(120)  评论(0)    收藏  举报