2009-07-30 12 views
1

J'ai besoin de lire un fichier RTF avec des caractères thai et de l'écrire dans un fichier texte. J'ai essayé d'utiliser TIS-620, MS874, ISO-8859-11, mais les caractères thai ne s'affichent pas correctement lorsque j'ouvre le fichier de sortie résultant dans le bloc-notes ou le pavé de texte. Mais cela fonctionne bien avec Wordpad. Guidez-moi s'il-vous-plaît.Codage de caractères pour les caractères thaïs

Merci et Cordialement, Ramya.

Code qui a résolu le problème (publié dans le commentaire, ajoutant ici pour le rendre lisible!):

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

Le fichier de sortie est-il également RTF? –

+0

Non le fichier de sortie est un fichier texte. Nous avons résolu le problème avec le code affiché ci-dessous. –

Répondre

0

Je ne pense pas que le bloc-notes gère tous les encodages de caractères, d'un peu googler. Pourriez-vous essayer de ré-encoder les caractères en UTF-8 (ou un autre format Unicode), puisque le Bloc-notes gère cela correctement? Vous allez want to use the BOM.

J'ai également trébuché à travers un tool for converting files in Thai dans divers autres codages.

Enfin, existe-t-il une exigence que les fichiers peuvent être ouverts dans le Bloc-notes? Ce n'est pas comme si le Bloc-notes était le dernier mot dans l'édition de texte.

+0

FileInputStream fin = nouveau FileInputStream (nomfichier); DataInputStream din = new DataInputStream (fin); // création d'un document de style vide par défaut DefaultStyledDocument styledDoc = new DefaultStyledDocument(); // Création d'un kit RTF Editor RTFEditorKit rtfKit = new RTFEditorKit(); // Remplir le contenu du document de style vierge rtfKit.read (din, styledDoc, 0); // Obtention du document racine Document doc = styledDoc.getDefaultRootElement(). GetDocument(); // Impression du contenu du document RTF en texte brut System.out.println (doc.getText (0, doc.getLength())); –

+0

Comment cela a-t-il résolu le problème? Cela ne fait rien du tout avec les encodages du flux de sortie du fichier! –