5

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

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

当我做

String s = scanner.next();

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

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

4

2 回答 2

2

System.in假设是 UTF-8 编码是不安全的。有关一些解决方法,请参阅此问题

于 2013-04-17T01:59:36.413 回答
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"));
于 2013-04-17T04:45:28.603 回答