web-dev-qa-db-ja.com

JVMプロパティ-Dfile.encoding = UTF8またはUTF-8?

ファイルエンコーディングをUTF-8に設定するためのJava Virtual Machine(JVM)プロパティの値は何ですか?.

-Dfile.encoding=UTF8 または -Dfile.encoding=UTF-8

58
astrotouf

[INFO] BUILD SUCCESS
Picked up Java_TOOL_OPTIONS: -Dfile.encoding=UTF8
とにかく、それは私のために働く:)

2
livejq

そうなる:

UTF8

定義については here を参照してください。

58
planetjones

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_に正規化されたことに注意してください。

15
javabrett

UTF8とUTF-8の両方が機能します。

8
Pedro Madrid

これは直接的な答えではありませんが、Javaの開始方法:環境変数Java_TOOLS_OPTIONSから-Dfile.encoding="UTF-8"そして、jvmが起動するたびに、そのオプションが選択されます。

7
Milimetric