zoukankan      html  css  js  c++  java
  • 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 时

    编译执行之后,得到的结果为:

    GBK
    

    3、文件保存的编码为: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-8
    GBK
    

      

    但事实是运行后的结果为:

    utf-8
    utf-8

    于是得出了结论是:

    在一个运行的应用程序中

    file.encoding的值只有一个,并且值为入口函数的保存编码的值

    至于file.encoding在代码中的代码有哪些应用,以后更深入时再讨论

  • 相关阅读:
    zTree的学习
    spring第9天(事务)
    spring学习第8天(advisor)
    spring学习第7天(PCD以及切点表达式)
    学习spring第6天(aop获取目标方法参数)
    学习spring第五天 mybatis+spring的整合(maven多模块数据查询使用了分页和连接池),以及aop
    学习spring的第4天
    Arcgis for Js之GeometryService实现测量距离和面积
    Arcgis for Js实现graphiclayer的空间查询(续)
    Arcgis for Js实现graphiclayer的空间查询
  • 原文地址:https://www.cnblogs.com/silentjesse/p/2235674.html
Copyright © 2011-2022 走看看