详解Java的启动参数-Dfile.encoding、System.getProperty(“file.encoding“)、该参数影响哪些行为

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

目录

一、-Dfile.encoding介绍和配置方法

        1. 介绍

        2. IDEA设置启动参数-Dfile.encoding的方法

                2.1 普通Java项目

                2.2 JavaWeb项目

二、-Dfile.encoding的作用

        1. -Dfile.encoding 影响以下行为:

        2. 案例演示

        2.1 System.out.printxx()

        2.2 字符编码函数 getBytes()

        2.3  FileReader


一、-Dfile.encoding介绍和配置方法

        1. 介绍

        关于 Java 的启动参数 -Dfile.encoding 的作用我发现很多博客都没有讲清楚,我先做简单介绍和设置该参数的方法,后续会讲解该参数到底有什么作用

        该参数与 System.getProperty("file.encoding") 相对应,如下所示

public class test {
    public static void main(String[] args){
        System.out.println("out_encoding: " + System.getProperty("file.encoding"));
    }
}

IDEA 创建普通的非 JavaWeb 项目,未设置启动参数 -Dfile.encoding 时,System.getProperty("file.encoding") 默认为 UTF-8

IDEA 创建 JavaWeb 项目,未设置启动参数 -Dfile.encoding 时,System.getProperty("file.encoding") 默认为 GBK

         如果想修改 System.getProperty("file.encoding") 的值应该怎么办呢?通过设置启动参数-Dfile.encoding 即可

        2. IDEA设置启动参数-Dfile.encoding的方法

        PS:普通的 Java 项目和 JavaWeb 项目设置启动参数 -Dfile.encoding 是不一样的,所以分开讲解。这里我以 2024 版的 IDEA 演示 

                2.1 普通Java项目

        ① 准备 test.java 文件以作验证:

public class test {
    public static void main(String[] args){
        System.out.println("out_encoding: " + System.getProperty("file.encoding"));
    }
}

        这时我们还未设置 -Dfile.encoding 参数,System.getProperty("file.encoding") 输出的是  "UTF-8" ,即默认为 UTF-8 编码,如下所示:

        ② 点击右上角的 "Edit Configurations"

        弹出一个窗口,左上角选择启动的 Java 程序 "test",然后依次点击 "Modify options --> Add VM options",如下图所示

        此番操作后,面板就会多出一个可输入 VM 参数的框,如下图所示:

        ③ 在输入框输入 -Dfile.encoding = 编码方式 即可,例如 -Dfile.encoding = UTF-8  或者 -Dfile.encoding = GBK 。如下图所示:

         ④ 重新执行 test.java 文件以作验证:

        可以看到,System.getProperty("file.encoding") 输出 GBK ,修改成功

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值