-Dfile.encoding=utf-8到底是设置什么,有什么含义与作用?

引言:Java程序运行、程序运行经常看到博客提示设置JVM参数-Dfile.encoding=utf-8,但是到底它是设置什么参数呢?为我们做了哪些事情呢?拨开云雾且看下文。

 一、程序运行源代码历经处理阶段

一份代码到运行得到正确输出,经过步骤:

Java源代码----Javac编译成class字节码文件----Java虚拟机JVM加载运行---操作系统----显示设备。

Java源码---字节码:调用jdk的javac命令执行编译,javac默认采用系统字符集。通常我们会设置文件编码UTF-8。使用命令编译也可以加上-encoding UTF-8;

System.getProperty("file.encoding")   //可以获取当前系统使用的编码字符集

Java字节码---虚拟机---操作系统:虚拟机启动的时候以什么字符集编码来解析我们的class字节码文件呢?这时候我们就通常会设置 -Dfile.encoding=utf-8.   Dfile=decode file. 这里也就解释了设置这个VM参数的意义了。

操作系统---显示设备:针对编码阶段出现的中文,在这一步骤就需要操作系统安装中文字体以支持中文。

so,Do i  explain it clearly to you?Ths for listening!

完结!

参看博客正确设置-Dfile.encoding参数 - LiuYanYGZ - 博客园

### 设置 Java 文件编码为 UTF-8 后控制台乱码解决方案 当在命令行启动 Java 应用程序并设置了 `-Dfile.encoding=UTF-8` 参数后仍然遇到乱码问题时,这通常是因为 JVM 的默认字符集其他环境不一致所致[^1]。 对于 Windows 用户来说,在命令提示符下运行 Java 程序可能会遭遇中文显示异常的情况。这是因为 CMD 默认使用的代码页并非 Unicode 编码方式。为了使输出正常工作,可以在执行 Java 命令之前更改系统的活动代码页至支持多字节字符集的一个版本: ```bash chcp 65001 ``` 上述指令会切换当前终端窗口到 UTF-8 编码模式,从而允许正确渲染非 ASCII 字符串数据[^2]。 另外一种方法是在 Eclipse IDE 中调整项目属性中的文本文件编码选项来匹配所需的编码标准。右键点击工程名 -> Properties -> Resource -> Text file encoding, 将其设为 Other:UTF-8 即可确保源代码按照指定格式保存和读取。 如果希望永久改变整个开发环境中 Java 进程的行为而不需要每次都手动传递参数给 `java` 或者修改特定项目的设置,则可以通过配置操作系统的环境变量实现这一点。具体做法如下所示(适用于 Windows 和 Linux/MacOS): #### 对于 Windows 操作系统: 编辑系统环境变量 PATH 下新增一项名为 `_JAVA_OPTIONS` 的全局变量,并赋予它值 `-Dfile.encoding=UTF-8` 。这样每次创建新的命令行实例都会自动应用此设定。 #### 对于 Unix 类操作系统 (Linux / MacOS) : 通过 `.bashrc`,`.zshrc` 或其他 shell 配置脚本加入下面这一行以影响所有后续打开的终端会话: ```bash export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" ``` 这样做之后重启 Shell 终端或重新加载配置文件使之生效即可让所有的 Java 应用受益于此变更。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值