- import binascii
- import sys
- """
- python3:
- python3 默认编码为 unicode, 由 str 类型进行表示. 二进制数据使用 byte 类型表示
- 字符串通过编码转换成字节码, 字节码通过解码成为字符串
- encode:str -> bytes
- decode:bytes -> str
- 转: https://www.jianshu.com/p/c6a3a0167ff9
- """print("print1:", sys.getdefaultencoding())
- name = "中国"
- name = name.encode("utf-8")
- print(name)
- print("print2:", type(name), name)
- name = name.decode("utf-8")
- name = name.encode("gbk")
- print("print4:", type(name), name)
- a = 'worker'.encode()
- # 先把 worker 转换成二进制数据然后在用十六进制表示
- b = binascii.b2a_hex(a) # w 对应 ascII 是 0x77;o 对应 ascII 是 0x6f... 以此类摧
- print(b)
- # 与 b2a_hex 相反
- print(binascii.a2b_hex(b))
- # 这个功能和 b2a_hex() 一样
- c = binascii.hexlify(a)
- print(c)
- # 这个功能和 a2b_hex() 一样
- print(binascii.unhexlify(c))
编码与解码: 相当于计算机存储数据 [二进制 十六进制] 与实际屏幕显示的相互转译;
通用编码: uft-8 utf-16
中文: gbk gb2132
注:
** 编码与解码与系统无关, 是通用的规则;
** 数据传输过程中不同语言和框架可以对数据进行拆解与整合, 类似加密, 而非编码方式导致数据不可解读
来源: http://www.bubuko.com/infodetail-3825810.html