python - Python 中的 chr(128) .. chr(255) 有什么意义?

标签 python ascii

编辑:我说的是 Python 2.7 中的行为。

chr函数将 0 到 127 之间的整数转换为 ASCII 字符。例如

>>> chr(65)
'A'

我明白这在某些情况下是如何有用的,我明白为什么它涵盖 0..127,即 7 位 ASCII 范围。

该函数还接受 128..255 的参数。对于这些数字,它只返回参数的十六进制表示。在此范围内,不同的字节表示不同的内容,具体取决于 ISO-8859 的哪一部分。使用标准。

如果 chr 我会理解采取了另一个论点,例如

>>> chr(228, encoding='iso-8859-1') # hypothetical
'ä'

但是,没有这样的选项:

chr(i) -> character

Return a string of one character with ordinal i; 0 <= i < 256.

我的问题是:提出 ValueError 有什么意义?对于 i > 255而不是 i > 127 ?所有功能都是为 128 <= i < 256 做的是返回十六进制值吗?

最佳答案

在 Python 2.x 中,str 是一个字节序列,因此 chr() 返回一个字节的字符串并接受 0-255 范围内的值,因为这是一个字节可以表示的范围。当您打印一个字节在 128-255 范围内的字符串的 repr() 时,该字符以转义格式打印,因为没有标准的方式来表示此类字符(ASCII 仅定义 0- 127).但是,您可以使用 unicode() 将其转换为 Unicode,并指定源编码:

unicode(chr(200), encoding="latin1")

在 Python 3.x 中,str 是一个 Unicode 字符序列,而 chr() 的范围更大。字节由 bytes 类型处理。

关于python - Python 中的 chr(128) .. chr(255) 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27029241/

相关文章:

python - 将大型 csv 文件读入字典时出现内存错误

python - K 均值结果索引在第二次运行中有所不同

Python 输入函数

python - 当多个字段具有相同名称时如何插入xml python?

c++ - 如何将 int 转换为 ASCII char C++

python - 用python读取fortran未格式化的文件

python - self.assertTrue(response.content 中的 post.text) – 断言错误

C# 字符串 ASCII 表示

c++ - 如何将文件内容识别为 ASCII 或二进制

C - char 和 int 之间的 acsii 转换