java - 特殊字符输入错误

标签 java java.util.scanner

我有一个奇怪的问题。我在 Java 中有这段代码:

Scanner keyboard = new Scanner(System.in);
System.out.print("Enter word: ");
String word = keyboard.nextLine();
System.out.println(word);

但是,对于特殊字符,scanner类似乎出错了。例如,如果我输入 ħabel,我会打印出 ħabel。 Eclipse 的控制台输出设置为 UTF-8,这是肯定的,所以我认为它来自输入。我还没有在 Scanner 类中找到任何编码选项,真的很有趣地谷歌搜索也没有给出解决方案。如何解决?

谢谢!

最佳答案

当您在裸InputStream 上设置Scanner 时,它使用默认字符集(对您来说似乎是ASCII)读取。如果要指定字符集,请执行以下操作:

Scanner keyboard = new Scanner(new InputStreamReader(
                    System.in, Charset.forName("UTF-8")));

关于java - 特殊字符输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9114861/

相关文章:

Java ArrayList - 检查元素是否为空

java - 如何修复 JScrollPane 内 JEditorPane 的高度?

java - 如何从文本文件返回特定行?

java - 扫描仪始终需要两个输入(Java)

java - 如何接受输入并使程序打印出新行上的每个字母,同时使遇到的每个空格打印出 "<space>"?

java语法问题

Java 对 Guava TreeBasedTable 进行排序

java - 如何在不吃下一个整数的情况下检查下一行?

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?