Оценивать UTF-8 буквенные escape-последовательности в строке в Python3
У меня есть строка вида:
s = '\\xe2\\x99\\xac'
Я хотел бы преобразовать это в символ ♬ путем оценки escape-последовательности. Однако все, что я пробовал, либо приводит к ошибке, либо выводит мусор. Как я могу заставить Python преобразовать escape-последовательность в буквальный символ Unicode?
То, что я прочитал в другом месте, предполагает, что следующая строка кода должна делать то, что я хочу, но это приводит к UnicodeEncodeError.
print(bytes(s, 'utf-8').decode('unicode-escape'))
Я также попробовал следующее, которое имеет тот же результат:
import codecs
print(codecs.getdecoder('unicode_escape')(s)[0])
Оба этих подхода создают строку «â \ x99», которую print впоследствии не может обработать.
В случае, если есть какая-либо разница, строка считывается из файла в кодировке UTF-8 и в конечном итоге будет выведена в другой файл в кодировке UTF-8 после обработки.