Windows 10のJava 18.0.1.1で次のようなプログラムを実行し,日本語を入力すると文字化けしてしまいます.
やりたいことは,はじめに全角または半角で数字を入力し,その回数だけユーザに入力を求めて,入力と逆順に表示するということです.
日本語を入力しても文字化けしないようにするにはどうしたらよいでしょうか?
Java
1import java.io.*; 2 3public class RecentEvent 4{ 5 public static void main(String[] args) throws IOException 6 { 7 System.out.println("繰り返す数:"); 8 BufferedReader br = 9 new BufferedReader(new InputStreamReader(System.in)); 10 11 String repeat = br.readLine(); 12 int num = Integer.parseInt(repeat); 13 14 String[] event; 15 event = new String[num]; 16 17 for(int i = 0; i< num; i++){ 18 String str = br.readLine(); 19 event[i] = str; 20 } 21 22 System.out.println("---近況の報告---"); 23 24 for(int i = (num-1); i>=0; i--){ 25 System.out.println(event[i]); 26 } 27 } 28}
ファイル,コマンドプロンプト,デフォルトエンコーディングの文字コードはどれもUTF-8で,実行結果は次のようになってしまいます.
繰り返す数: 3 温泉旅行 ゴルフ おうちでパーティー ---近況の報告--- 000000000 ` ` ` @@@@
Mac環境では問題なく実行できます.
Java
1BufferedReader br = 2 new BufferedReader(new InputStreamReader(System.in,"SHIFT_JIS"));
や
Java
1BufferedReader br = 2 new BufferedReader(new InputStreamReader(System.in,"UTF-8"));
のようにInputStreamReaderの第2引数に文字コードを与えても同じような結果となり解決しませんでした.
回答1件
あなたの回答
tips
プレビュー