回答編集履歴

2

表現を修正

2021/02/06 08:54

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -1,8 +1,8 @@
1
- コマンドプロンプトのコードページ設定と、javacが出力する文字列のエンコーディングが食い違っているため。
1
+ 原因: コマンドプロンプトのコードページ設定と、javacが出力する文字列のエンコーディングが食い違っているため。
2
2
 
3
3
 
4
4
 
5
- 環境変数JAVA_TOOL_OPTIONSに`-Dfile.encoding=UTF-8`が設定されているため、javacのコマンドラインオプション`-J-Dfile.encoding=UTF-8`が指定された状態になり、UTF-8エンコーディングされた使用方法(日本語を含む)が表示されます。
5
+ 詳細な説明: 環境変数JAVA_TOOL_OPTIONSに`-Dfile.encoding=UTF-8`が設定されているため、javacのコマンドラインオプション`-J-Dfile.encoding=UTF-8`が指定された状態になり、UTF-8エンコーディングされた使用方法(日本語を含む)が表示されます。
6
6
 
7
7
 
8
8
 
@@ -10,4 +10,8 @@
10
10
 
11
11
 
12
12
 
13
+ 対策: 2つの方法のうち、どちらか片方だけを使えば、文字化けしないで結果が見られます。
14
+
13
- `chcp 65001`を実行して、コマンドプロンプトのコードページを65001(UTF-8)にしてからjavacを実行するかコマンドプロンプトのコードページは932(MS932)のままで`javac -J-Dfile.encoding=MS932`とすれば、文字化けないで結果が見られます。
15
+ (方法1) コマンドプロンプトで`chcp 65001`を実行してEnterキーを押し、コマンドプロンプトのコードページを65001(UTF-8)にしてから、`javac`と入力てEnterキーを押す。
16
+
17
+ (方法2) コマンドプロンプトのコードページ(932)はそのまま変更しない。`javac -J-Dfile.encoding=MS932`と入力してEnterキーを押す。つまり、JAVA_HOME_OPTIONSの設定を上書きする。

1

誤字を修正

2021/02/06 08:54

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -10,4 +10,4 @@
10
10
 
11
11
 
12
12
 
13
- `chcp 65001`を実行して、コマンドプロンプトのコードページを65001(UTF-8)にしてからjavabを実行するか、コマンドプロンプトのコードページは932(MS932)のままで`javac -J-Dfile.encoding=MS932`とすれば、文字化けしないで結果が見られます。
13
+ `chcp 65001`を実行して、コマンドプロンプトのコードページを65001(UTF-8)にしてからjavacを実行するか、コマンドプロンプトのコードページは932(MS932)のままで`javac -J-Dfile.encoding=MS932`とすれば、文字化けしないで結果が見られます。