2013-04-17 41 views
5

我创建了一个Scanner,它从System.in获取输入,以便我可以从控制台获取输入。从System.in获取unicode值

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

当我在控制台执行

String s = scanner.next(); 

,然后输入Слово דבר,字符串的值变成???? ???

控制台能够显示Unicode字符,但为什么我不能读取它们?

回答

2

假设System.in是UTF-8编码是不安全的。有关某些解决方法,请参阅this question

1

这是因为System.in以默认编码方式返回文本(您的默认编码显然不是UTF-8)。这应该工作正常

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

而且你可以从Java

System.out.println(System.getProperty("file.encoding")); 
读你的默认编码