A-A+
file.encoding的简单分析
网络上关于“file.encoding”的分析简直乱七八糟,大部分的观点是与入口函数所在文件的编码有关系。今天就这个问题,简单的分析一下,做一个小例子。
首先我们需要一个很简单的入口函数:
public static void main(String[] args) {
System.out.println("file.encoding:"+System.getProperty("file.encoding"));
}
在IDEA中,我这里的文件默认编码为"UTF-8":

我们运行一下,看看输出的结果:

然后,将此文件的编码改为"GBK":

我们再运行一下,看看输出结果有没有改变:

我们发现结果根本毫无改变,这样网络上的观点(与入口函数所在文件的编码有关系)是错误的。
那么,file.encoding的结果与什么有关系呢?
我们尝试着增加JVM参数"-Dfile.encoding=utf-8"来试验一下:

运行一下,看一下最终结果:

所以,最后的结论是:file.encoding与入口函数所在文件的编码没有关系,而与运行时设置的文件编码有关系。
