HUX布斯
在python字符串中,字节和字节序列称为平面序列,这意味着它们已编入索引,但它们与容器化序列(如列表或元组)的类型不同,任何字符串字符都有一个称为代码点的固定标识。码位是介于 0 和 0 到 1,114,111 之间的小数。内置函数采用单个字符并返回一个整数,该整数表示字符的代码点ord()print([chr(i) for i in range(100,120)])['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w']ord('€')8364代码点的格式为 U+ 前缀对于字母 A,代码点是 U+0041,对于欧元符号,代码点是 U+20AC如果我们用他包装,我们得到字符的十六进制表示ord()hex()hex(ord('A'))'0x41'hex(ord('€'))'0x20ac'现在,如果你从机器的角度来考虑这个问题,想想所有这些都是用机器语言写的。所以你用机器语言把它变成你(用户)可读的格式。decode()b'\x41'.decode('UTF_8')'A'b'\x41\x00'.decode('UTF_16')'A'b'\x41' 和 b'\x41\x00' 是 utf-8 和 utf-16 编码中字母 A 的字节序列b'\xe2\x82\xac'.decode('UTF_8')'€'b'\xac\x20'.decode('UTF_16')'€'当您编码时,您将字节序列转换回机器理解的语言。字节序列是机器识别的码位表示形式.encode() 字符串到字节,.decode() 字节到字符串字符串字符和字节之间的映射使用 UTF-8(或 UTF-16,gb2312...)编码进行解释"café".encode('utf_8')b'caf\xc3\xa9'"café".encode('utf_16')b'\xff\xfec\x00a\x00f\x00\xe9\x00''El Niño'.encode('utf_8')b'El Ni\xc3\xb1o'因此,当实例对象是希伯来语或字符时使用,当您的实例是字节序列(例如字母 A 的字节序列)时使用。.encode().decode()b'\x41\x00'在非常相似的行为中,class 方法采用字符并对其进行编码,就像编码到字节序列中一样。bytes().encode()bytes("El Niño", encoding = 'utf_16')b'\xff\xfeE\x00l\x00 \x00N\x00i\x00\xf1\x00o\x00'上面的所有代码都在python3.8中。在python 2中,在数据类型方面有所不同。因此,如果您在Python 2中尝试此操作,请谨慎行事