У меня есть символ юникода, например , и я хочу вернуть формат \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 "
Для строки байта:
>>> text = ''
>>> text.encode('unicode-escape')
b'\\U0001f3c6'
для строки Unicode:
>>> text.encode('unicode-escape').decode('ascii')
'\\U0001f3c6'
\U00xxxxxx
- это вообще не UTF-32. UTF-32 - это двоичный формат.\U00xxxxxx
- это escape-последовательность в простом ASCII.