如何使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")