我今天读了python PEP100。在“Unicode默认编码”部分中,它指的是'Unicode实现必须对其进行一些假设 传递给它的8位字符串的编码用于强制和关于 编码为默认情况下将Unicode转换为字符串时 没有给出具体的编码。'
我的问题是,'8位字符串'是什么意思?这是指ASCII吗?
答案 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位字节