这句话是什么意思?

时间:2012-10-09 09:21:41

标签: python

我今天读了python PEP100。在“Unicode默认编码”部分中,它指的是'Unicode实现必须对其进行一些假设     传递给它的8位字符串的编码用于强制和关于     编码为默认情况下将Unicode转换为字符串时     没有给出具体的编码。'

我的问题是,'8位字符串'是什么意思?这是指ASCII吗?

2 个答案:

答案 0 :(得分:4)

不,ASCII是7位编码。大多数文本编码(包括UTF-8和ISO-8859)都是8位编码。

一般来说,除基本ASCII字符集之外的任何内容都需要超过7位进行编码。因此,在处理国际数据时,通常会处理每个编码字符可能使用多个字节的编码。当您尝试组合Unicode和字节字符串类型时,Python将自动尝试将字节字符串解码为Unicode,并且默认编码(在python 2中)是ASCII。这是Python中UnicodeDecodeError异常的常见来源。

在继续之前,您真的想要阅读Unicode和文本编码。我可以推荐:

答案 1 :(得分:2)

UTF-8用于支持大量字符。在UTF-8中,最多4个字节可用于表示单个字符。

ASCII仅定义128个字符。所以只有7位。但通常以8位/字符存储。 RS232(旧串行通信)可以使用7位字节