我用Java编程
我的代码为:
byte[] b = test.getBytes();
在api中指定如果我们不指定字符编码,则采用默认的平台字符编码。
“默认平台字符编码”是什么意思?
是指Java编码还是操作系统编码?
如果它意味着操作系统编码,我该如何检查Windows和Linux的默认字符编码?无论如何我们可以使用命令行获取默认字符编码吗?
答案 0 :(得分:31)
系统属性file.encoding
是JVM供应商特定的。在这种特定情况下,它仅适用于Sun JVM,并且可能无法在Sun之外的其他供应商的JVM上运行。
而是使用提供Charset#defaultCharset()
的Java SE API。
Charset defaultCharset = Charset.defaultCharset();
答案 1 :(得分:4)
它表示您正在运行的JVM的默认字符编码,
要检查默认编码,您可以执行以下操作:
System.getProperty("file.encoding");
将返回默认编码(以及上面的getBytes()使用的编码。)