unicode - 为什么字符可以转换为字节

unicode - 为什么字符可以转换为字节

在内部,计算机必须以某种字节形式存储字符,但理想情况下这种存储是不透明的。“字符串”可以存储“字符”,但这些字符在内存中的编码方式取决于程序。

编码是获取“字符”并将其转换为特定字节表示的过程。

解码是获取特定字节表示并将其转换回程序的“字符”概念的过程。

作为一个具体的例子,Python 语言有一个由 Unicode 代码点组成的“文本”类型,以及一个由 0-255 字节值组成的“字节”类型。您实际上不需要知道文本字符串是如何存储在内存中的,事实上它已经通过编译选项和 Python 版本多年来发生了变化(UTF-16、UTF-32,目前是一个变量编码,取决于最大值字符串中存在的代码点)。文本字符串可以编码为字节字符串并解码回文本字符串:

>>> s = '你好' # Two Chinese characters, How are the stored in memory? Does it matter?

>>> type(s)

>>> len(s)

2

>>> b = s.encode('utf8')

>>> type(b)

>>> len(b)

6

>>> print(b)

b'\xe4\xbd\xa0\xe5\xa5\xbd' # 6 bytes encoding the 2 characters in UTF-8

>>> b.decode('utf8') # decode from UTF-8 back to text

'你好'

相关内容

史上最贵GUNPLA?!2000万日元1/144纯金敢达RX-78-2登场
365bet手机版中文

史上最贵GUNPLA?!2000万日元1/144纯金敢达RX-78-2登场

🕒 08-07 👁️ 8735
滴滴加油怎么操作
365betmobileapp

滴滴加油怎么操作

🕒 06-27 👁️ 189
2024年重庆C1驾照考试费用明细
365betmobileapp

2024年重庆C1驾照考试费用明细

🕒 07-28 👁️ 4691