什么是 unicode() 函数的 python 2/3 兼容替代方案?
What is a python 2/3 compatible alternative to the unicode() function?
是否有 python 2 unicode()
函数的替代方法,可用于可与 python 2 和 3 一起使用的代码,并且肯定会在中生成 unicode 输出python2?
unicode()
函数在 python 3 中不存在
six.u(u'xyz')
在 python 2 中引发错误
我正在编写测试代码,我绝对想生成 unicode 输出,因此如果它与执行路径中某处的非 unicode 字符串组合,它将在测试中爆炸 - 例如
'stuff %s' % u'unistuff'
对于一般情况,我看到它建议只使用 str()
,但在 python 2 中不生成 unicode。
我想我可以做到:
if six.PY3:
unicode = str
但肯定有一些官方支持的方式。
(而且很难 google 因为所有结果都是关于 unicode 字符串而不是 unicode 函数本身)。
根据 the documentation(我建议阅读...)你想要 six.text_type
:
Type for representing (Unicode) textual data. This is unicode()
in
Python 2 and str
in Python 3.
是否有 python 2 unicode()
函数的替代方法,可用于可与 python 2 和 3 一起使用的代码,并且肯定会在中生成 unicode 输出python2?
unicode()
函数在 python 3 中不存在
six.u(u'xyz')
在 python 2 中引发错误
我正在编写测试代码,我绝对想生成 unicode 输出,因此如果它与执行路径中某处的非 unicode 字符串组合,它将在测试中爆炸 - 例如
'stuff %s' % u'unistuff'
对于一般情况,我看到它建议只使用 str()
,但在 python 2 中不生成 unicode。
我想我可以做到:
if six.PY3:
unicode = str
但肯定有一些官方支持的方式。
(而且很难 google 因为所有结果都是关于 unicode 字符串而不是 unicode 函数本身)。
根据 the documentation(我建议阅读...)你想要 six.text_type
:
Type for representing (Unicode) textual data. This is
unicode()
in Python 2 andstr
in Python 3.