2012-12-25 12 views
11

Używam programu Java z wiersza polecenia (Windows 7). Aby uprościć sprawę, opisuję tylko odpowiednią część.Kodowanie systemowe System.out

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

Moje wyniki to śmieci. Jest to oczywiście problem z kodowaniem znaków, węgierskie znaki Á i á nie są wyświetlane poprawnie. Próbowałem następujące:

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

Ale moje wyniki są nadal śmieci. Jak mogę rozwiązać ten problem z kodowaniem znaków w wierszu poleceń systemu Windows 7? Dzięki

+1

Jesteś pewien, że to nie jest problem z kompilacją? Jak się kompilujesz, a jakie kodowanie jest w kodzie źródłowym? –

+1

Czy twój wyświetlacz rzeczywiście obsługuje wyświetlanie takich znaków na początek? Tj. Czy możesz wpisać je na klawiaturze na tym ekranie i wyświetlają się poprawnie? – fge

+0

Kompiluję z NetBeans, a kodowanie znaków źródeł to UTF-8 –

Odpowiedz

15

mam kod do pracy poprzez znalezienie odpowiedniego kodowania z poziomu wiersza polecenia, a następnie obu użyciu wersji PrintStream z tym kodowaniem, lub określając je w wierszu polecenia i tylko przy użyciu System.out.println.

Aby znaleźć kodowanie w wierszu poleceń, uruchom chcp. Oto wyjście, które otrzymałem:

Active code page: 850 

Odpowiada to nazwie zestawu znaków Java "IBM850". Tak więc to tworzy odpowiednie wyjście w linii poleceń:

java -Dfile.encoding=IBM850 Test 
+1

Mężczyzna! Jesteś niesamowity. +100 do tej odpowiedzi. –

+0

+1 Dziękuję, to prawie rozwiązało problem. Mała postać pojawiła się poprawnie, duża Á nie pojawiła się poprawnie. –

+0

@LajosArpad: Oba działają dla mnie - jakiej strony kodowej używa twoja konsola? –