【JAVA】-J-Dfile.encoding=UTF-8 【日本語が文字化け時の解決法】

  • このエントリーをはてなブックマークに追加

「-J-Dfile.encoding=UTF-8」についての覚書をしておく。



Javaのエンコーディング指定方法 – CodeAid-Lab(コードエイド・ラボ) ExternalLinkから引用 ここから-
Windowsの日本語環境は今なおデフォルトのエンコーディングがShift-JISです。
そしてJavaは動作するシステムの環境に合わせてエンコーディングが設定されます。
なので、WindowsでUTF-8でソースファイルを作成して、そのままコンパイルしたり実行するとコードに日本語を使っていると文字化けします
Javaのエンコーディング指定方法 – CodeAid-Lab(コードエイド・ラボ) ExternalLinkから引用 ここまで-

試してみる。
OS:Windows10(64bit)
下記のコードのファイル名を「JSample4_1.java」としてShift-JISで保存してコンパイルしてみる。


class JSample4_1{
  public static void main(String[] args){
    System.out.println("いい天気ですね");
  }
}

コンパイルが正常にできる。


C:\PlantUML>javac test/JSample4_1.java

C:\PlantUML>

しかし、「JSample4_1.java」を文字コード「UTF-8」とすると次のようにエラーになる。


C:\PlantUML>javac test/JSample4_1.java
test\JSample4_1.java:3: エラー: この文字(0x84)は、エンコーディングwindows-31jにマップできません
    System.out.println("縺?縺?螟ゥ豌励〒縺吶?ュ");
                         ^
test\JSample4_1.java:3: エラー: この文字(0x84)は、エンコーディングwindows-31jにマップできません
    System.out.println("縺?縺?螟ゥ豌励〒縺吶?ュ");
                           ^
test\JSample4_1.java:3: エラー: この文字(0x81)は、エンコーディングwindows-31jにマップできません
    System.out.println("縺?縺?螟ゥ豌励〒縺吶?ュ");
                                   ^
エラー3個

C:\PlantUML>

文字コードが「UTF-8」の場合は「-J-Dfile.encoding=UTF-8」をつけるとコンパイルが成功する。


C:\PlantUML>javac -J-Dfile.encoding=UTF-8 test/JSample4_1.java

C:\PlantUML>


  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*