2024-09-30 16:22:17 发布
网友
在python3中我写
s = '\u0300'
我得到一个unicode字符,但在python2中不起作用,我得到一个由各种字符组成的字符串
Python2似乎想要:
s = u'\u0300'
所以我必须检查sys.version_info,以便知道我运行的是python2还是python3,并相应地使用前者还是后者
sys.version_info
有没有一种方法可以在两种版本中都适用
python3(从3.3iirc开始)支持u''字符串文本。或者你可以用
u''
from __future__ import unicode_literals
在Python2中获取与Python3兼容的字符串文本。此语句在Python3中不起作用
最兼容的方法是使用six模块或类似的兼容性填充程序:
six
import six s = six.u('\u0300')
six在PyPI上可用,并且被广泛地使用和测试
另一种选择是:
from __future__ import unicode_literals s = '\u0300'
但是,这可能与Python2的许多期望相冲突,即字符串项可以包含字节。当unicode_literals打开时,字符串文本将被静默地几乎神奇地升级为Unicode字符串。Python文化通常倾向于显式的而不是隐式的
unicode_literals
python3(从3.3iirc开始)支持
u''
字符串文本。或者你可以用在Python2中获取与Python3兼容的字符串文本。此语句在Python3中不起作用
最兼容的方法是使用
six
模块或类似的兼容性填充程序:six
在PyPI上可用,并且被广泛地使用和测试另一种选择是:
但是,这可能与Python2的许多期望相冲突,即字符串项可以包含字节。当
unicode_literals
打开时,字符串文本将被静默地几乎神奇地升级为Unicode字符串。Python文化通常倾向于显式的而不是隐式的相关问题 更多 >
编程相关推荐