Windows上でJavaをUTF8で開発

 原則UTF-8でデータも保存するし,コーディングもするのですが,先日ちょっと躓いたのでメモ.

 Windows環境ではJavaは標準でSHIFT-JISで読み書きしてくれます.
 コードもSHIFT-JISで書かれていることを期待しているので,UTF-8で書いた時のコンパイルはこんな感じ.

$ javac -encoding utf8 Sample.java

 eclipseで開発・テスト実行していた時は問題なかったんですが,jar化してコマンドプロンプトから実行したら文字化け.
 どうもコンパイル時にUTF-8を指定していても,やはり読み書きはSHIFT-JISらしい.

 eclipseの起動時の引数を参考に解決できました.

$ java -Dfile.encoding=UTF-8 -jar Sample.jar

 で文字化けせずに動きます.
 いや,まぁ……テキスト読み込み処理でUTF-8を指定してあげればいいんですけど.