在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();