Javaソースファイルの文字コードと文字化けについて
JDKを使ってJavaプログラムを開発するとき、JDKの文字コードと、テキストエディタで書いたJavaソースファイルの文字コードとは一致していなくてはなりません。
文字コードが一致していないと、コンパイルや実行において文字が正常に処理されず、エラーや奇妙な文字列が表示される現象(文字化け)の原因になります。
現象
文字コードの不一致によるエラーや文字化けの例を示します。 図1および図2は javac によるコンパイルの際にエラーが起きた例です。 図3は java によるJavaプログラム実行の際に文字化けが起きた例です。
対処方法
上のようなエラーや文字化けが発生したら、次のいずれかの操作を試してください。
- 方法1: javac の実行時に -encoding MS932 というオプションを付ける(Javaソースファイルの文字コードがシフトJISであればこれでうまくいきます)。
javac -encoding MS932 Hello.java
- 方法2: javac の実行時に -encoding UTF-8 というオプションを付ける(Javaソースファイルの文字コードがUTF-8であればこれでうまくいきます)。
javac -encoding UTF-8 Hello.java
詳しい説明
詳細については正誤表の付録Aを参照してください。