gpt4 book ai didi

python - python是否支持基本多语言平面之外的unicode?

转载 作者:太空狗 更新时间:2023-10-30 00:40:59 24 4
gpt4 key购买 nike

下面是一个简单的测试。 repr 似乎工作正常。然而 lenx for x in 似乎没有在 Python 2.6 和 2.7 中正确划分 unicode 文本:

In [1]: u"爨爵"
Out[1]: u'\U0002f920\U0002f921'

In [2]: [x for x in u"爨爵"]
Out[2]: [u'\ud87e', u'\udd20', u'\ud87e', u'\udd21']

好消息是 Python 3.3 做了正确的事情™。

Python 2.x系列还有希望吗?

最佳答案

是的,前提是您编译的 Python 具有广泛的 unicode 支持。

默认情况下,Python 仅支持窄 unicode。通过以下方式获得广泛支持:

./configure --enable-unicode=ucs4

您可以通过测试 sys.maxunicode 来验证使用了什么配置:

import sys
if sys.maxunicode == 0x10FFFF:
print 'Python built with UCS4 (wide unicode) support'
else:
print 'Python built with UCS2 (narrow unicode) support'

宽构建将使用 UCS4 字符作为所有 unicode 值,使这些值的内存使用量加倍。 Python 3.3 切换到可变宽度值;仅使用足够的字节来表示当前值中的所有字符。

显示宽构建正确处理示例 Unicode 字符串的快速演示:

$ python2.6
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.maxunicode
1114111
>>> [x for x in u'\U0002f920\U0002f921']
[u'\U0002f920', u'\U0002f921']

关于python - python是否支持基本多语言平面之外的unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com