来自Python的文档chr内置函数,最大值chr
接受的是 1114111(十进制)或 0x10FFFF(基数 16)。而事实上
>>> chr(1114112)
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
chr(1114112)
ValueError: chr() arg not in range(0x110000)
我的第一个问题如下,为什么是这个数字?第二个问题是:如果这个数字发生变化,是否可以从Python命令中知道可接受的最大值chr
?
Use sys.maxunicode:
给出最大 Unicode 代码点值的整数,即1114111
(0x10FFFF
以十六进制表示)。
在我的 Python 2.7 UCS-2 上构建支持的最大 Unicode 字符unichr()
是 0xFFFF:
>>> import sys
>>> sys.maxunicode
65535
但 Python 3.3 及更新版本切换到了 Unicode 字符串的新内部存储格式,现在的最大值是always 0x10FFFF
. See PEP 393.
0x10FFFF
是 Unicode 标准中定义的最大 Unicode 代码点。引用维基百科关于 Unicode 的文章:
Unicode 定义了 1,114,112 个代码点的代码空间,范围为 0 到 10FFFF。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)