【发布时间】:2020-07-05 14:33:58
【问题描述】:
查看 Python 2.7 中的chr 文档:
返回一个字符的字符串,其 ASCII 码是整数 i。
但 ASCII 在 128 范围内。但在 Python 2.7 中,我有:
> chr(181)
'\xb5
这令人惊讶,我预计会出错。我暂时接受这个。
在 Python 3.7 中:
返回代表字符的字符串,其 Unicode 代码点是整数 i。
所以基本上这是 Python 2.7 中的unichr。
在 Python 3.7 中:
> chr(181).encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode character '\xb5' in position 0: ordinal not in range(128)
这是预期的,然后:
> chr(181).encode('utf8')
b'\xc2\xb5'
请注意我们如何拥有\xb5。
问题:
为什么 Python 2.7 不会在 chr(181) 上中断,以及它如何实际输出似乎部分正确的编码。
【问题讨论】:
标签: python python-2.7 ascii python-unicode