Как сделать строку unicode с python3


я использовал этот :

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

но получение ошибки с Python 3 (или... может быть, я просто забыл включить что-то) :

NameError: global name 'unicode' is not defined

спасибо.

3 67

3 ответа:

литеральные строки unicode по умолчанию в Python3

предполагая, что текст является bytes объект, просто используйте text.decode('utf-8')

unicode из Python2 эквивалентно str в Python3, так что вы также можете написать

str(text, 'utf-8')

если вы предпочитаете

Что нового в Python 3.0 говорит:

весь текст в кодировке Юникод, однако, закодированных в Unicode представлен как двоичный данные

Если вы хотите убедиться, что выводите utf-8, Вот пример с этой страницы на unicode в 3.0:

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

в качестве обходного пути, я использую этот:

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