Evaluate UTF-8-Literal-Escape-Sequenzen in einem String in Python3
Ich habe eine Zeichenfolge der Form:
s = '\\xe2\\x99\\xac'
Ich möchte dies durch Auswertung der Escape-Sequenz in das Zeichen ♬ umwandeln. Alles, was ich versucht habe, führt entweder zu einem Fehler oder druckt Müll aus. Wie kann ich Python zwingen, die Escape-Sequenz in ein literales Unicode-Zeichen umzuwandeln?
Was ich an anderer Stelle gelesen habe, deutet darauf hin, dass die folgende Codezeile tun sollte, was ich will, aber dies führt zu einem UnicodeEncodeError.
print(bytes(s, 'utf-8').decode('unicode-escape'))
Ich habe auch Folgendes ausprobiert, was das gleiche Ergebnis hat:
import codecs
print(codecs.getdecoder('unicode_escape')(s)[0])
Beide dieser Ansätze erzeugen die Zeichenfolge 'â \ x99¬', die der Ausdruck anschließend nicht verarbeiten kann.
Wenn es einen Unterschied macht, wird der String aus einer UTF-8-codierten Datei eingelesen und nach der Verarbeitung in eine andere UTF-8-codierte Datei ausgegeben.