・
コマンドプロンプトで日本語(全角文字)を入力する
と、文字化けする場合がある
- Windows11以降、文字コードの関係で正しく入力がされない(環境により異なる)
- コマンドプロンプトの日本語(全角)文字入力はSJIS
- Javaの標準入力で、デフォルトの文字コードが SJIS
から UTF-8 に変更されたらしい
・ InputStreamReaderクラスは
= new
BufferedReader( new InputStreamReader( System.in ) );
|
のところを
= new
BufferedReader( new InputStreamReader( System.in, "SJIS" ) );
|
のように修正する
・ Scannerクラスは
= new
Scanner(System.in);
|
のところを
= new
Scanner(System.in, "SJIS");
|
のように修正する
<サンプルプログラム5(文字化けする例)>
import
java.util.Scanner;
class Sample0005
{
public static void main(String[] args)
{
System.out.print("全角文字を入力してください-->");
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println("文字列 = " + str );
}
}
|
<実行結果(文字化けする)>
C:\java>java
Sample0005
全角文字を入力してください-->あいうえお
文字列 = ??????????
C:\java>
|
・以下ように修正する
<サンプルプログラム6>
import
java.util.Scanner;
class Sample0006
{
public static void main(String[] args)
{
System.out.print("全角文字を入力してください-->");
Scanner sc = new Scanner(System.in, "SJIS"); // ここを変更する
String str = sc.next();
System.out.println("文字列 = " + str );
}
}
|
<実行結果(文字化けしない)>
C:\java>java
Sample0006
全角文字を入力してください-->あいうえお
文字列 = あいうえお
C:\java>
|
|