Ich erstelle ein Programm, das. RTF-Dateien lesen wird. RTF-Dateien sind in ASCII codiert, stellen jedoch Nicht-ASCII-Zeichen mit einer Escape-Sequenz dar, gefolgt von zwei Zahlen, die ein UTF-16-Doppelbyte darstellen. Zum Beispiel wird "こ れ は 日本語." Als "\ '82 \ 'b1 \ '82 \' ea \ '82 \ 'cd \ '93 \' fa \ '96 \ '7b \' 8c \ 'ea dargestellt \ '81 \ '42 ".Wie konvertiert man eine Zeichenfolgedarstellung einer UTF-16-Bytefolge in Python in UTF-8?
Für die Zwecke meines Programms ist die Codepage immer "cpg1252".
Wie konvertiere ich die "\ 'xx" -Sequenzen in eine UTF-8-Zeichenfolge? Ich habe versucht, mit den Codecs herumzuspielen, aber alles, was ich bekam, war Kauderwelsch.
RTF verwendet * vorzeichenbehaftete Ganzzahlen *, um UTF-16-Code-Einheiten zu codieren, eigentlich mit dem Präfix "\ u" und gefolgt von einem Ersatzzeichen. –
Es gibt keine Instanzen von "\ u" in meinen .rtf-Dateien. Sind die "\ 'xx" nicht UTF-16? –
Ich bezweifle es. Der Text, den Sie gaben, codiert zu UTF-16-Little-Endian (was alle MS-Produkte verwenden), wäre "53 30 8c 30 6f 30 e5 65 2c 67 9e 8a 02 30". Die Daten, die Sie angegeben haben, haben keine Korrelation damit. –