Ich habe RTF
Dateien sind in ANSI
codiert, während es Arabic
Sätze enthält. Ich versuche diese Datei zu lesen, konnte sie aber nicht in der richtigen Kodierung lesen.Kann nicht lesen RTF ANSi Datei enthält arabische Zeichen
RTF-Datei:
{\rtf1\fbidis\ansi\deff0{\fonttbl{\f0\fnil\fcharset178 MS Sans Serif;}{\f1\fnil\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\ltrpar\lang12289\f0\rtlch\fs16\'ca\'d1\'cc\'e3\'c9: \'d3\'e3\'ed\'d1 \'c7\'e1\'e3\'cc\'d0\'e6\'c8\f1\ltrch\par
}
und mein Java-Code ist:
RTFEditorKit rtf = new RTFEditorKit();
Document doc = rtf.createDefaultDocument();
rtf.read(new InputStreamReader(new FileInputStream("Document.rtf"), "windows-1256"),doc,0);
System.out.println(doc.getText(0,doc.getLength()));
und die falsche Ausgabe lautet:
ÊÑÌãÉ: ÓãíÑ ÇáãÌÐæÈ
Soweit ich sehen kann, unterstützt Swing die '\ fcharset178'-Anweisung Ihrer RTF-Datei nicht und ignoriert sie stillschweigend, und Sie können nichts dagegen tun, da alle relevanten Klassen in diesem Prozess nicht öffentlich sind '... – Holger
Also gibt es eine Möglichkeit, einige Zeichen in' RTF'-Datei zu ersetzen, um es richtig zu lesen? oder gibt es generell eine JAVA-Bibliothek, um arabische Zeichen aus 'RTF'-Dateien zu lesen? – Jason4Ever