什么是JVM的默认编码?

UTF-8是Java中的默认编码吗?
如果不是,我怎么知道默认使用哪种编码?

5 Solutions collect form web for “什么是JVM的默认编码?”

JVM的默认字符集是它所运行的系统的字符集。 没有具体的价值,你通常不应该依赖于默认的编码是任何特定的值。

它可以在运行时通过Charset.defaultCharset()来访问,如果这对你有任何用处的话,尽pipe你应该明确地指出编码的时候。

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

如果您的应用程序对编码特别敏感(可能通过使用暗示默认编码的API),那么您应该在JVM启动时明确地将其设置为一致(已知)值。

有三种“默认”编码:

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

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

  • 和InputStreamReader的编码:
    InputStreamReader.getEncoding()

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

这将取决于语言环境。 不同的语言环境,不同的默认编码。

我相信这是JVM实现特定的,但是我可以通过执行以下命令来“影响”我的JVM的默认文件编码:

 export LC_ALL=en_US.UTF-8 

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

另外,如果你从你的unix控制台input“locale”,你应该会看到更多的信息。

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

  • Java堆栈溢出错误 - 如何增加Eclipse的堆栈大小?
  • 在哪里可以findSun / Oracle JVM的默认XSS值?
  • 读取Java JVM启动参数(例如-Xmx)
  • 为什么我不能创build一个大尺寸的数组?
  • 如何处理“java.lang.OutOfMemoryError:Java堆空间”错误(64MB堆大小)
  • -XX:UseParallelGC和-XX之间的区别:+ UseParNewGC
  • 在Java中使用break来退出循环是不好的做法吗?
  • 如何从Java应用程序内部获取虚拟机参数?
  • 为什么为Java VM编写如此多的新语言?
  • 在JDK 8中删除PermGen
  • 在运行时设置JVM堆大小