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を指定してあげればいいんですけど.