4

python 2 函数是否有替代方案unicode(),可用于可与 python 2 和 3 一起使用的代码,并且肯定会在 python 2 中产生 unicode 输出?

  • unicode()函数在 python 3 中不存在
  • six.u(u'xyz')在 python 2 中引发错误

我正在编写测试代码,我肯定想生成 unicode 输出,因此如果它与执行路径中某处的非 unicode 字符串结合,它将在测试中爆炸 - 例如

'stuff %s' % u'unistuff'

对于一般情况,我看到它建议只使用str(),但在不产生 unicode 的 python 2 中。

我想我可以这样做:

if six.PY3:
    unicode = str

但肯定有一些官方支持的方式。

(而且很难用谷歌搜索,因为所有结果都是关于 unicode 字符串而不是 unicode 函数本身)。

4

1 回答 1

3

根据您想要的文档(我建议您阅读...)six.text_type

用于表示 (Unicode) 文本数据的类型。这是unicode()在 Python 2 和strPython 3 中。

于 2015-12-30T14:40:18.177 回答