在 Python 3 中,所有字符串都是 Unicode 字符序列。不存在以 UTF-8 编码的 Python 字符串或编码为 CP-1252 的 Python 字符串之类的东西。“这个字符串是 UTF-8 吗?” 是一个无效的问题。UTF-8 是一种将字符编码为字节序列的方法。如果您想获取一个字符串并将其转换为特定字符编码的字节序列,Python 3 可以帮助您。如果您想获取一个字节序列并将其转换为字符串,Python 3 也可以帮助您。字节不是字符;字节是字节。字符是一种抽象。字符串是这些抽象的序列。
我不明白作者的意思。
当我说s = 'hello'
,如何在s
内部编码?当然它必须使用一些使用一些编码。他说所有字符串都是 Unicode 字符序列。但是每个字符有多少字节呢?这个字符串是 UTF-8 吗?为什么他会说:“没有以 UTF-8 编码的 Python 字符串之类的东西”。
我了解 Python 提供了将 Python“字符串”转换为一系列字节的功能,这些字节可由使用该编码的另一个软件读取。它还支持将一系列字节转换为 Python“字符串”。现在这个“字符串”的内部表示让我感到困惑。