Java如何获取平台(操作系统)的默认编码

Posted 石头StoneWang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何获取平台(操作系统)的默认编码相关的知识,希望对你有一定的参考价值。

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编码的方式

开始->设置->时间和语言->语言->管理语言设置

在这里插入图片描述

接下来如图操作

在这里插入图片描述

以上是关于Java如何获取平台(操作系统)的默认编码的主要内容,如果未能解决你的问题,请参考以下文章

java 怎么获得文件编码格式

java怎么查看一段中文是啥编码格式

java的默认编码

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

关于 JAVA 源代码生成 API 的编码问题