我创建了一个从Scanner
获取输入的System.in
,以便我可以从控制台获取输入。
Scanner scanner = new Scanner(System.in, "UTF-8");
当我这样做时
String s = scanner.next();
然后在控制台中输入Слово דבר
,字符串的值变为???? ???
。
控制台能够显示Unicode字符,但为什么我不能阅读它们?
答案 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"));