2013-04-17 21 views
5

Ich habe eine Scanner erstellt, die Eingabe von System.in erhält, so dass ich Eingaben von der Konsole erhalten kann.Unicode-Werte von System.in erhalten

Scanner scanner = new Scanner(System.in, "UTF-8"); 

Als ich

tun
String s = scanner.next(); 

und dann Eingang Слово דבר in der Konsole, wird der Wert des Strings ???? ???.

Die Konsole kann Unicode-Zeichen anzeigen, aber warum kann ich sie nicht lesen?

Antwort

2

Es ist nicht sicher anzunehmen, System.in ist UTF-8 codiert. Einige Umgehungslösungen finden Sie unter this question.

1

Dies liegt daran, dass System.in Text in Standardcodierung zurückgibt (Ihre Standardcodierung ist offensichtlich nicht UTF-8). Dies sollte OK

Scanner sc = new Scanner(System.in); 
String s = sc.next(); 
System.out.println(s); 

arbeiten, und Sie können Ihre Standard-Codierung von Java

System.out.println(System.getProperty("file.encoding")); 
lesen