「-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>