我有一个奇怪的问题。我在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课程中找到任何编码选项真的和有趣的谷歌搜索没有给出解决方案。怎么能解决这个问题?
谢谢!
答案 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()));