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

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

在这里插入图片描述

接下来如图操作

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值