ファイルエンコーディングをUTF-8に設定するためのJava Virtual Machine(JVM)プロパティの値は何ですか?.
-Dfile.encoding=UTF8
または -Dfile.encoding=UTF-8
?
[INFO] BUILD SUCCESS
とにかく、それは私のために働く:)
Picked up Java_TOOL_OPTIONS: -Dfile.encoding=UTF8
Oracle HotSpot JDK 1.7.xを実行している場合、ロケールがUTF-8を提案するLinuxプラットフォーム(_LANG=en_US.utf8
_など)で、コマンドラインで_-Dfile.encoding
_を使用して設定しない場合、 JDKは、デフォルトで_file.encoding
_とデフォルトのCharset
を次のようにします。
_System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
_
...収量:
_file.encoding: UTF-8
defaultCharset: UTF-8
_
...そのようなプラットフォームでは、デフォルトが_UTF-8
_であることを提案します。
さらに、Java.nio.charset.Charset.defaultCharset()
が_file.encoding
_ not-setを見つけると、Java.nio.charset.Charset.forName("UTF-8")
を探し、その文字列を優先することを提案します。正常に動作します。
同じプラットフォームで_Java -Dfile.encoding=UTF8
_を使用して、ハイペンなしで同じプログラムを実行すると、次のようになります。
_file.encoding: UTF8
defaultCharset: UTF-8
_
...デフォルトの文字セットが_UTF8
_から_UTF-8
_に正規化されたことに注意してください。
UTF8とUTF-8の両方が機能します。
これは直接的な答えではありませんが、Javaの開始方法:環境変数Java_TOOLS_OPTIONS
から-Dfile.encoding="UTF-8"
そして、jvmが起動するたびに、そのオプションが選択されます。