Java如何获取平台(操作系统)的默认编码
平台,这两个字指的就是操作系统,比如Windows平台,MacOS平台,Linux平台。这也是我们经常读API文档的时候见到的英文 “platform”,如 “platform encoding”。
如何获取平台默认的编码
import java.nio.charset.Charset;
public class getDefaultCharset {
public static void main(String[] args) {
//方法一
System.out.println(System.getProperty("file.encoding"));
//方法二
System.out.println(Charset.defaultCharset());
}
}
注意:
1、上述的代码如果在 IDEA 里面运行,需要注意,如果 IDEA 设置了跟操作系统不一样的编码,获取的编码就不是操作系统的默认编码 (详细见下)
2、要怎么获取平台(操作系统)的编码呢? 上述代码编译成class后,在命令行窗口中运行(实测过了,不受 IDEA影响,PS:这是肯定的啦!)
3、Windows的默认编码是GBK,这里以win10为例。网上有设置win10的编码的教程,但是我发现设置后,无论是1还是2的方式,运行后发现都没改变成UTF-8(设置方式见后),真的不知道为什么,有知道的同学可以留言。
如果使用IDEA运行,需要注意
(如下,打印UTF-8,Project Encoding比Global Encoding优先)
(如下,打印UTF-8,虽然Project Encoding优先,但是因为它设置成系统默认,而Global Encoding明确指定了UTF-8)
(如下,打印UTF-8,Project Encoding明确指定而Global Encoding没有明确,更何况前者更加优先)
(如下,打印GBK,两者都不明确指定,则跟随系统,win10默认是GBK)
设置win10编码的方式
开始->设置->时间和语言->语言->管理语言设置
接下来如图操作