什么是unicode()函数的python 2/3兼容替代品?

时间:2015-12-30 14:33:41

标签: python python-3.x unicode python-2.x six

是否有python 2 unicode()函数的替代方法可用于兼容python 2和3的代码,并且肯定会在python 2中生成unicode输出?

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

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

'stuff %s' % u'unistuff'

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

我想我能做到:

if six.PY3:
    unicode = str

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

(由于所有结果都是关于unicode字符串而不是unicode函数本身,因此谷歌很难这样做。)

1 个答案:

答案 0 :(得分:3)

the documentation(我建议您阅读...),您需要six.text_type

  

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