2017-03-05 2 views
0
File file = new File("file.txt"); 
BufferedWriter output=new BufferedWriter(new Filewriter(file)); 

output.write("data fetched from database"); 

Je récupère des données de la base de données qui est mappée à l'objet DTO correspondant et écrit dans le fichier en utilisant les getters de l'objet DTO.impossible d'écrire la capitale latine A lettres dans un fichier en utilisant Java

Il fonctionne très bien pour les données normales, mais échoue pour les données ci-dessous:

le mot DB est: KÄRNTEN.

Lorsque j'ouvre le fichier dans Windows dans le bloc-notes, c'est correct. Quand j'ouvre dans l'éditeur vi ou vim, après KÄ, il va à une nouvelle ligne et écrit le reste.

lorsque j'ouvre dans un fichier wordpad ou csv sous Windows, il est affiché comme: KÄNTEN.

+1

ressemble à un problème d'encodage – fragmentedreality

+0

double possible de [A défaut d'écrire allemand 'trémas' (AOU) de la console vers un fichier texte avec java] (http://stackoverflow.com/questions/3862320/failing-to-write-german-umlauts-%c3%a4%c3%b6%c3%bc-from-console-to-text-file-with-java) –

+0

oui, il est. Maintenant, ça fonctionne bien après avoir changé les paramètres de traduction sur le terminal putty. – avinashsv

Répondre

0

L'effet ressemble à Vous obtenez les données en UTF-8, mais lisez-le comme ISO-8859.

Essayez

Writer out = new BufferedWriter(new OutputStreamWriter(
      new FileOutputStream("file.txt"), "ISO-8859-1")); 
try { 
    out.write("data fetched from database:" + yourFetchedData); 
} finally { 
    out.close(); 
} 

Voir aussi How to write a UTF-8 file with Java?

+0

J'avais même essayé OutStreamWriter mais pas de chance. Plus tard, j'ai trouvé que ce n'était pas le problème avec le fichier. J'ai changé les paramètres du terminal de putty et maintenant, les données semblent propres. Sur le terminal, modifiez les paramètres -> translation -> et sélectionnez UTF-8 dans la liste déroulante. – avinashsv