是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?