2013-04-17 19 views
5

System.inから入力を取得してコンソールから入力を取得できるようにScannerを作成しました。System.inからユニコード値を取得する

Scanner scanner = new Scanner(System.in, "UTF-8"); 

私は

String s = scanner.next(); 

を行い、その後、コンソールで入力Слово דברすると、文字列の値が???? ???なります。

コンソールでは、Unicode文字を表示できますが、なぜ読み込めませんか?

答えて

2

System.inはUTF-8でエンコードされているとは限りません。いくつかの回避策については、this questionを参照してください。

1

これは、System.inがデフォルトのエンコードでテキストを返すためです(デフォルトのエンコードは明らかにUTF-8ではありません)。これは

Scanner sc = new Scanner(System.in); 
String s = sc.next(); 
System.out.println(s); 

OKを動作する必要がありますし、Javaの

System.out.println(System.getProperty("file.encoding")); 
から、あなたのデフォルトのエンコーディングを読み取ることができます
関連する問題