2013-04-17 24 views
5

System.in'dan girdi alan bir Scanner oluşturdum, böylece konsoldan girdi alabilirim. Ben konsoldaUnicode değerlerini System.in'den alma

String s = scanner.next(); 

ve ardından giriş Слово דבר yaptığınızda

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

, dize değeri ???? ??? olur.

Konsol, Unicode karakterlerini görüntüleyebilir, ancak neden okuyamıyorum?

cevap

2

System.in UTF-8 kodlu olduğunu varsaymak güvenli değildir. Bazı geçici çözümler için bkz. this question.

1

Bunun nedeni, System.in varsayılan kodlamada metin döndürmesidir (varsayılan kodlamanız açıkça UTF-8 değil). Bu Tamam

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

çalışmalıdır Ve

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

adresinin varsayılan kodlamayı okuyabilir