在Java中确定平台的默认字符集

我用Java编程

我有以下代码:

byte[] b = test.getBytes(); 

在api中指定如果我们不指定字符编码,则采用默认的平台字符编码。

“默认平台字符编码”是什么意思?

这是指Java编码还是操作系统编码?

如果它意味着OS编码,我该如何检查Windows和Linux的默认字符编码? 无论如何我们可以使用命令行获取默认字符编码?

它表示您正在运行的JVM的默认字符编码,

要检查默认编码,您可以执行以下操作:

 System.getProperty("file.encoding"); 

这将返回默认编码(以及上面的getBytes()使用的编码)。

系统属性file.encoding是特定于JVM的供应商。 在这种特定情况下,它仅适用于Sun JVM,并且可能无法在Sun之外的其他供应商的JVM上运行。

而是使用Java SE API提供的Charset#defaultCharset()

 Charset defaultCharset = Charset.defaultCharset();