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

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

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

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

NameError: global name 'unicode' is not defined

Спасибо.

Ответы

Ответ 1

По умолчанию в Python3 буквенные строки в кодировке Unicode.

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

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

str(text, 'utf-8')

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

Ответ 2

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

Весь текст Unicode; однако кодированный Unicode представлен как двоичный Данные

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

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

Ответ 3

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

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

Ответ 4

В программе Python 2, которую я использовал много лет, была такая строка:

ocd[i].namn=unicode(a[:b], 'utf-8')

Это не сработало в Python 3.

Однако программа оказалась работающей с:

ocd[i].namn=a[:b]

Я не помню, почему я поставил юникод там, во-первых, но я думаю, что это потому, что имя может содержать шведские буквы åäöÅÄÖ. Но даже они работают без "юникода".

Ответ 5

самый простой способ в Python 3.x

text = "hi , I'm text"
text.encode('utf-8')

Ответ 6

Вот как я решил свою проблему для преобразования символов типа \uFE0F,\u000A и т.д. А также смайликов, которые закодированы с 16 байтами.

example = 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\\uD83D\\uDE0D\\uD83D\\uDE0D\\u2764\\uFE0F Present Moment Caf\\u00E8 in St.Augustine\\u2764\\uFE0F\\u2764\\uFE0F '
import codecs
new_str = codecs.unicode_escape_decode(example)[0]
print(new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\ud83d\ude0d\ud83d\ude0d❤️ Present Moment Cafè in St.Augustine❤️❤️ '
new_new_str = new_str.encode('utf-16', 'surrogatepass').decode('utf-16')
print(new_new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream😍😍❤️ Present Moment Cafè in St.Augustine❤️❤️ '