">2\u0098\u0085" должно переводиться в "★"
Какой это тип кодировки? Сначала я подумал, что это escape-последовательность юникода, но когда я использую конвертер, я получаю «â» Я также пошел другим путем и попробовал разные конвертеры, используя символ «★», чтобы попытаться получить эту кодировку, но я не могу ее найти.
Когда я кодирую ★ как UTF-8, я получаю \xE2\x98\x85
. (Не \u00e2\u0098\u0085
. У вас есть 16-битные значения, а у вас должно быть 8-битное значение.)
Итак, у вас есть неправильная кодировка, которая (действительно):
Или альтернативно:
Но как ни посмотри, это результат неправильной последовательности шагов кодирования/декодирования... где-то.
Непонятно, откуда взялась строка \u00e2\u0098\u0085
. Однако выполнение следующего в приглашении Python дает желаемый результат:
b"\u00e2\u0098\u0085".decode('unicode-escape').encode('latin1').decode()
'★'
"\\u00e2\\u0098\\u0085".encode().decode('unicode-escape').encode('latin1').decode()
'★'
Обратите внимание, что .encode()
является эквивалентом для .encode('utf-8')
(и то же самое для .decode()
).