如何使python3 unicodestring

我用这个:

u = unicode(text, 'utf-8') 

但是得到错误与Python 3(或…也许我只是忘了包括一些东西):

 NameError: global name 'unicode' is not defined 

谢谢。

在Python3中默认情况下,文字string是unicode

假设文本是一个bytes对象,只需使用text.decode('utf-8')

Python2的unicode相当于Python3中的str ,所以你也可以写

 str(text, 'utf-8') 

如果你更喜欢

作为一个解决方法,我一直在使用这个:

 # Fix Python 2.x. try: UNICODE_EXISTS = bool(type(unicode)) except NameError: unicode = lambda s: str(s) 

Python 3.0中有什么新东西说:

所有的文本是Unicode; 然而编码的Unicode被表示为二进制数据

如果你想确保你输出的是utf-8,下面是一个来自3.0版本的unicode页面的例子:

 b'\x80abc'.decode("utf-8", "strict")