Ich analysiere RTF 1.5+ -Dateien, die von Word 2003+ generiert wurden und Inhalte aus anderen Sprachen enthalten können. Dieser Inhalt wird normalerweise als Hex-Literale (\ 'xx) codiert. Ich möchte diese Literale in Unicode-Werte umwandeln.So ermitteln Sie, welche Codepage beim Konvertieren von RTF-Hex-Literalen in Unicode verwendet wird
Ich kenne die Codepage meines Dokuments, indem ich nach ansicpg (\ ansi \ ansicpg1252) suche.
Wenn ich die ansicpg-Codepage zum Decodieren in Unicode verwende, scheinen viele Sprachen (wie Französisch) in die Unicode-Zeichenwerte zu konvertieren, die ich erwarte.
Wenn ich jedoch russischen Text (wie unten) sehe, decodiert die Codepage 1252 den Inhalt zu Jibberish.
\ F277 \ lang1049 \ langfe1033 \ langnp1049 \ insrsid5989826 \ charrsid6817286 \ 'd1 \' f2 \ 'f0 \' e0 \ 'ed \' e8 \ 'f6 \' fb \ 'e1 \' e5 \ 'e7 \ ed \ 'e0 \' e7 \ 'e2 \' e0 \ 'ed \' e8 \ 'ff. \ 'dd \' f2 \ 'e0 \' f1 \ 'f2 \' f0 \ 'e0 \' ed \ 'e8 \' f6 \ 'e0 \' ed \ 'e5 \' e4 \ 'ee \' eb \ 'e6 \' ed \ 'e0 \' ee \ 'f2 \' ee \ 'e1 \' f0 \ 'e0 \' e6 \ 'e0 \' f2 \ 'fc \' f1 \ 'ff \' e2 \ ' f2 \ 'e0 \' e1 \ 'eb \' e8 \ 'f6 \' e5 \ 'e2 \' f1 \ 'ee \' e4 \ 'e5 \' f0 \ 'e6 \' e0 \ 'ed \' e8 \ 'e8.
Ich nehme an, dass lang1049, langfe1033, langnp1049 sollte mir Hinweise geben, damit ich programmgesteuert eine andere Codepage (nicht standardmäßige) für den Text wählen kann, die sie verweisen? Wenn ja, wo finde ich Informationen, die erklären, wie man einen lang * -Code einer Codepage zuordnen kann? Oder sollte ich nach einem anderen RTF-Befehl/einer anderen RTF-Anweisung suchen, um mir die Informationen zu liefern, nach denen ich suche? (Oder muss ich \ f277 als Zeichensatzreferenz verwenden und prüfen, ob eine Codepage vorhanden ist?)
Danke Bobince - das ist genau der Tipp, den ich brauchte. Sie haben Recht, der gesamte Prozess ist umständlich, kompliziert und ärgerlich. – Malcolm