2009-07-30 7 views
1

Ich habe eine Anforderung, eine RTF-Datei mit thailändischen Zeichen zu lesen und sie in eine Textdatei zu schreiben. Ich habe versucht, TIS-620, MS874, ISO-8859-11 zu verwenden, aber thai-Zeichen werden nicht ordnungsgemäß angezeigt, wenn ich die resultierende Ausgabedatei in Notepad oder Textpad öffne. Aber es funktioniert gut mit Wordpad. Bitte führen Sie mich.Zeichencodierung für thailändische Zeichen

Dank und Grüße, Ramya.

Code, der das Problem gelöst (in Kommentar geschrieben, hier das Hinzufügen es lesbar zu machen!):

FileInputStream fin = new FileInputStream(fileName); 
DataInputStream din = new DataInputStream(fin); 
//creating a default blank styled document 
DefaultStyledDocument styledDoc = new DefaultStyledDocument(); 
//Creating a RTF Editor kit 
RTFEditorKit rtfKit = new RTFEditorKit(); 
//Populating the contents in the blank styled document 
rtfKit.read(din,styledDoc,0); 
// Getting the root document 
Document doc = styledDoc.getDefaultRootElement().getDocument(); 
//Printing out the contents of the RTF document as plain text 
System.out.println(doc.getText(0,doc.getLength())); 
+1

Ist die Ausgabedatei auch RTF? –

+0

Nein, die Ausgabedatei ist eine Textdatei. Wir haben das Problem mit dem unten angegebenen Code gelöst. –

Antwort

0

Ich glaube nicht, Notizblock alle Zeichencodierungen Griffe, aus wenig googeln. Könnten Sie versuchen, die Zeichen in UTF-8 (oder ein anderes Unicode-Format) neu zu codieren, da der Editor das richtig behandelt? Du wirst want to use the BOM.

Ich stolperte auch über eine tool for converting files in Thai in verschiedene andere Kodierungen.

Schließlich, gibt es eine Anforderung, dass die Dateien im Editor geöffnet werden können? Es ist nicht so, als ob der Editor das letzte Wort in der Textbearbeitung ist.

+0

FileInputStream fin = neuer FileInputStream (Dateiname); DataInputStream din = neuer DataInputStream (fin); // Erstellen eines standardmäßigen leer formatierten Dokuments DefaultStyledDocument styledDoc = new DefaultStyledDocument(); // Erstellen eines RTF-Editor-Kits RTFEditorKit rtfKit = new RTFEditorKit(); // Auffüllen des Inhalts im leer formatierten Dokument rtfKit.read (din, styledoc, 0); // Abrufen des Stammdokuments Dokument doc = styledDoc.getDefaultRootElement(). GetDocument(); // Ausdruck des Inhalts des RTF-Dokuments als einfacher Text System.out.println (doc.getText (0, doc.getLength())); –

+0

Wie hat das das Problem gelöst? Das macht überhaupt nichts mit den Kodierungen des Dateiausgabestroms! –