2015-06-14 10 views
7

Sto leggendo un file xml che contiene testo tedesco, francese, spagnolo, inglese e polacco.Visualizzazione caratteri (lucido) correttamente

per gestire le lettere polacchi (che hanno causato la maggior parte dei problemi) ho cercato di fare in questo modo:

File file = new File(path); 
InputStream is = new FileInputStream(file); 
Reader reader = new InputStreamReader(is, charset); 

InputSource src = new InputSource(reader); 
src.setEncoding(charset.name()); 

SAXParserFactory factory = SAXParserFactory.newInstance(); 
SAXParser saxParser = factory.newSAXParser(); 

saxParser.parse(src, handler); 

Il problema che ho incontrato è stato che nessuno dei set di caratteri di default visualizzare il testo in modo corretto. Alcuni hanno dei punti interrogativi, alcuni hanno una combinazione di altri caratteri in esso, ad es. AO ..

di rompere un po 'giù mi ha scritto un altro frammento di mettere alla prova che funziona charset:

public static void main(String[] args){ 
     Charset charset = StandardCharsets.UTF_8; 
     String chars = "śłuna długie"; 
     System.out.println(new String(chars.getBytes(charset), charset)); 
} 

Ancora una volta testati ognuno ma niente lavora .. Spero che tu hai un'idea.

+3

Nel tuo primo frammento di codice non viene mostrato nulla, quindi è difficile dire cosa sta succedendo. Il secondo frammento di codice funziona, 'śłuna długie' è correttamente stampato sulla console. Che console usi? * Dove * cerchi di stampare questo testo? Il dispositivo di output supporta i caratteri che si desidera stampare? –

+0

È difficile fornire il codice corretto di un parser perché ci sono così tante parti importanti di esso .. Ok, quindi il problema potrebbe essere la mia console .. non ci ho pensato. È la console di default della mia IDA Intellij – codewing

+0

ha cambiato il mio progetto e la codifica ide in utf 8 e ha funzionato .. grazie amico – codewing

risposta

0

La mia soluzione: cambiare la codifica del vostro IDE

ho usato la codifica di default del mio IDE (IntelliJ) che era "windows-1252", a causa del fatto che sto usando le finestre su questo pc.

Quindi l'ho modificato in UTF-8 e il codice di prova breve ha funzionato bene per me.

Problemi correlati