从System.in获取unicode值

时间:2013-04-17 01:54:14

标签: java java.util.scanner

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

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

当我这样做时

String s = scanner.next();

然后在控制台中输入Слово דבר,字符串的值变为???? ???

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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"));