特殊字符输入错误

时间:2012-02-02 15:21:55

标签: java java.util.scanner

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

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

但是,对于特殊字符,扫描程序类似乎出错了。例如,如果我输入ħabel,我会打印ħabel。 Eclipse的控制台输出设置为UTF-8,当然,我认为它来自输入。我还没有在Scanner课程中找到任何编码选项真的和有趣的谷歌搜索没有给出解决方案。怎么能解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

我相信Russel的回答是正确的,但您的输入字符集似乎不是UTF-8 试试这个: Scanner s= new Scanner(new InputStreamReader(System.in,Charset.defaultCharset()));