Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Java 中关于System property 之 file.encoding

通过代码System.getProperty("file.encoding")可以获得file.encoding的值问题1:file.encoding的值是什么呢?  这个一开始我认为是操作系统的编码但我错了,它的值为保存每个程序的main入口的那个java文件的保存编码(点击文件-->属性-->text file encoding(other的值),这是使用eclipse 编译器)通过以下的代码即可证明:/**
 * Test.java源代码文件
 */
public class Test {
    public static void main(String[] args) {
        System.out.println(System.getProperty("file.encoding"));
        //Test2.printEncoding();
    }
}1、文件保存的编码为:GB2312 时编译执行之后,得到的结果为:GB2312 2、文件保存的编码为:GBK 时编译执行之后,得到的结果为:GBK3、文件保存的编码为:UTF-8时编译执行之后,得到的结果为:UTF-8从上面的三个结果可以看出,file.encoding的值并不是操作系统os的默认编码而是main入口函数所在的类的保存编码.但是这时想到了另一个问题,问题2:是不是每个java文件都有自己的file.encoding呢?于是我写了另一个类做试验,添加了类文件Test2.java/**
 * Test2.java源代码文件
 */
public class Test2 {
    public static void printEncoding(){
        System.out.println(System.getProperty("file.encoding"));
    }
}并将源文件Test.java的代码修改为:/**
 * Test.java源代码文件
 */
public class Test {
    public static void main(String[] args) {
        System.out.println(System.getProperty("file.encoding"));
        Test2.printEncoding();//添加了这个命令
    }
}这时我将Test.java的保存编码设置为:utf-8将Test2.java的保存编码设置为:GBK根据问题2我最原始的假设那么编译运行这两个文件之后得到的结果应该为:utf-8GBK但事实是运行后的结果为:utf-8utf-8于是得出了结论是:在一个运行的应用程序中file.encoding的值只有一个,并且值为入口函数的保存编码的值至于file.encoding在代码中的代码有哪些应用,以后更深入时再讨论.本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/122171.htm