2012-12-25 15 views
11

Sto eseguendo il mio programma Java da riga di comando (Windows 7). Per semplificare le cose, descrivo solo la parte pertinente.Codifica dei caratteri System.out

public static void main(String[] args) { 
    System.out.println("Árpád"); 
} 

La mia uscita è spazzatura. È ovviamente un problema di codifica dei caratteri, i caratteri ungheresi di Á e á non vengono visualizzati correttamente. Ho provato il seguente:

public static void main(String[] args) { 
    PrintStream ps = new PrintStream(System.out, true, "UTF-8"); 
    ps.println("Árpád"); 
} 

Ma la mia uscita è ancora spazzatura. Come posso risolvere questo problema di codifica dei caratteri con la riga di comando di Windows 7? Grazie

+1

Sei sicuro che non si tratti di un problema di compilazione? Come stai compilando e in che codifica è il tuo codice sorgente? –

+1

Il display supporta effettivamente la visualizzazione di tali caratteri con cui iniziare? Ad esempio, puoi digitarli sulla tastiera su questo display e appaiono correttamente? – fge

+0

Sto compilando con NetBeans e la codifica dei caratteri delle sorgenti è UTF-8 –

risposta

15

ho ricevuto il codice per lavorare trovando la codifica direttamente dalla linea di comando, e quindi sia utilizzando la versione PrintStream con quella codifica, o specificando sulla riga di comando e usando solo System.out.println.

Per trovare la codifica sulla riga di comando, eseguire chcp. Ecco l'output che ho ottenuto:

Active code page: 850 

Che corrisponde al nome del set di caratteri Java di "IBM850". Quindi questo crea l'output corretto sulla riga di comando:

java -Dfile.encoding=IBM850 Test 
+1

Man! Sei semplicemente fantastico. +100 a questa risposta. –

+0

+1 Grazie, questo ha quasi risolto il problema. Il piccolo carattere á si presentava correttamente, il grande Á non veniva mostrato correttamente. –

+0

@LajosArpad: entrambi funzionano per me: quale tabella codici utilizza la tua console? –

Problemi correlati