什么是JVM的默认编码?什么是JVM的默认编码?(What is the default encod

2019-05-13 11:20发布

是UTF-8 Java中的默认编码?
如果没有,我怎么能知道哪种编码默认情况下使用?

Answer 1:

设置JVM的默认字符是系统的运行它的。 有这个没有具体的价值,你一般不应依赖于默认编码为任何特定的值。

它可以在运行时通过以下方式访问Charset.defaultCharset()如果这是任何对你有用,但实际上你应该总是指定的编码明确时,你可以这样做。



Answer 2:

请注意,您可以用容易混淆的名称的属性来更改JVM的默认编码file.encoding

如果你的应用是编码特别敏感(也许是通过API意味着默认编码的使用),那么你应该明确地设置此JVM上启动时一致的(已知)值。



Answer 3:

有三个“默认”编码:

  • 的file.encoding:
    System.getProperty("file.encoding")

  • java.nio.charset中:
    Charset.defaultCharset()

  • 而InputStreamReader中的编码:
    InputStreamReader.getEncoding()

你可以阅读更多关于它的这个页面 。



Answer 4:

我相信,这是JVM具体实行,但我能“影响”我的JVM的默认的file.encoding通过执行:

export LC_ALL=en_US.UTF-8

(在Ubuntu 12.04上运行的Java版本1.7.0_80)

此外,如果您从UNIX控制台输入“区域设置”,你应该会看到更多资讯。

所有归功于http://www.philvarner.com/2009/10/24/unicode-in-java-default-charset-part-4/



Answer 5:

这将是语言环境相关。 不同的区域,不同的默认编码。



Answer 6:

你可以用它来打印出JVM默认

import java.nio.charset.Charset;
import java.io.InputStreamReader;
import java.io.FileInputStream;

public class PrintCharSets {
        public static void main(String[] args) throws Exception {
                System.out.println("file.encoding=" + System.getProperty("file.encoding"));
                System.out.println("Charset.defaultCharset=" + Charset.defaultCharset());
                System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.java")).getEncoding());
        }
}

编译和运行

javac PrintCharSets.java && java PrintCharSets


Answer 7:

要获取默认的Java设置,只需使用:

java -XshowSettings 


文章来源: What is the default encoding of the JVM?