Как превратить символ Юникода в формат \ Uxxxxxxxx в Python 3

1

У меня есть символ юникода, например , и я хочу вернуть формат \Uxxxxxxxx. Но до сих пор не удалось найти простой способ. Уже пробовал:

text = 

text.encode('utf-32').decode('utf-8')
returns error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

text.encode('utf-32').decode('unicode-escape')
returns ÿþ

Как это сделать \U000XXXXX? Я знаю, что могу получить персонажа из \U000XXXXX:

string = "foo bar foo \U000XXXXX"
string.encode('utf-8').decode('unicode-escape')
returns "foo bar foo "
  • 0
    Обратите внимание, что \U00xxxxxx - это вообще не UTF-32. UTF-32 - это двоичный формат. \U00xxxxxx - это escape-последовательность в простом ASCII.
  • 0
    Этот веб-сайт конвертера смутил меня: branah.com/unicode-converter Там написано "конвертировать в UTF-32". сожалею
Показать ещё 4 комментария
Теги:
string
python-3.x
unicode
utf-8

1 ответ

2
Лучший ответ

Для строки байта:

>>> text = ''
>>> text.encode('unicode-escape')
b'\\U0001f3c6'

для строки Unicode:

>>> text.encode('unicode-escape').decode('ascii')
'\\U0001f3c6'
  • 0
    Это решено для меня! Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню