2012-02-02 17 views
2

私は奇妙な問題を抱えています。私は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

をあなたが使ったキャラクター? – kosa

答えて

2

裸のInputStreamScannerを設定すると、デフォルトの文字セット(ASCIIのようです)を使用して読み込みます。あなたは文字セットを指定したい場合は、この操作を行います。

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

おかげでRusselは、うまくいきませんでした... –

+1

この質問は役に立ちました:http://stackoverflow.com/questions/8669056/unicode-input-in-a-console-application-in-java –

+0

上記の質問、Windowsのコンソール入力は特殊文字では機能しないようです。私はファイルから入力を読み返すことに戻りました。ありがとうRussel –

0

を私はラッセルの答えが正しいと信じているが、それはあなたの入力文字セットが はこのお試しくださいUTF-8ではないようだ:特別である何 Scanner s= new Scanner(new InputStreamReader(System.in,Charset.defaultCharset()));

関連する問題