JavaとGroovyでソースファイルのエンコーディングを指定するには
提供: tknotebook
メインページ>コンピュータの部屋#Java>Java Tips
最近はプログラムのソースファイルを UTF-8 で書くことが多くなりましたが、
JVM系のコマンド Javac や Groovy の読み込むファイルのエンコーディングの既定値は
日本のWindows上では MS932(シフトJIS) です。
Javac でソースファイルのエンコーディングで UTF-8 を指定するには
javac -encoding UTF-8 ・・・・
groovy のソースファイルのエンコーディングで UTF-8 を指定するには
groovy -c UTF-8 ・・・・
蛇足ですが、gradle は、gradle-2以降 既定で ビルドファイルのエンコーディングはUTF-8 になったので ビルドファイルは UTF-8 で書かねばなりません。 出力メッセージは MS932 でコンソールに出力されます。
尚、環境変数 JAVA_OPTS を使って
JAVA_OPTS=file.encoding=UTF-8
とすれば既定値が変わるらしいですが、Javadocに載っていませんし、 javaのコンソール出力も UTF-8 になるため、Windows では良いことないようです。 コマンド毎にまめにエンコーディングを指定するしかないようです。