我发现 Python 3 文档中关于
以下是我认为可能发生的事情,但你能告诉我是否正确吗?
chr
和 ord
的解释与这两种主要的文本数据类型 str
和 bytes
的关系有些不清晰。也许是我想太多了。以下是我认为可能发生的事情,但你能告诉我是否正确吗?
ord()
接受一个单字符的str
作为输入,返回一个int
。输入的str
和Python 3中的任何其他str
一样。特别地,它并不是以UTF-8等特定Unicode格式编码的bytes
,而是在Python内部使用str
格式表示Unicode代码点。chr()
接受一个int
作为输入,并返回一个单字符的str
。返回的str
和Python中的其他str
一样,同样也不是使用bytes
的特定编码方式。- 在任何时候,
ord()
和chr()
都不涉及bytes
,也不涉及像UTF-8这样的特定Unicode格式,它们只涉及Python内部的str
表示,该表示更抽象地处理Unicode代码点。
ord
函数也适用于字节类型... - Aran-Feyord()
应该能够确定来自[0-255]
的单个字节的偏移量。但是,对于 UTF-8 或任何其他表示中的多字节字符,ord()
将无法处理整个序列。 - Alex Huszaghord(b'\xe2') == 0xe2
。鉴于我的默认编码是utf8,没有有效的转换可用。 - Robᵩ