Java中的file.encoding和sun.jnu.encoding属性的设置含义

public class PropertiesTest {  
    public static void main(String[] args) {  
        System.out.println("file.encoding:"+System.getProperty("file.encoding"));  
        System.out.println("sun.jnu.encoding:"+System.getProperty("sun.jnu.encoding"));  
        // Properties pro = System.getProperties();  
        // Set<Entry<Object,Object>> entrySet = pro.entrySet();  
        // for(Entry<Object,Object> entry :entrySet){  
        // System.out.println(entry.getKey()+":"+entry.getValue());  
        // }  
    }  
}  

1、 sun.jnu.encoding是指操作系统的默认编码,file.encoding是指JAVA文件的编码(请记住,不是class文件,所有class文件的编码都是UTF-8),所以,在同一个操作系统上运行的JAVA应用程序,其sun.jnu.encoding完全相同,而file.encoding即使在同一个JAVA应用程序中,JAVA文件的编码也可以不一样。
在大部分的情况下,sun.jnu.encoding对我们都是透明的。

2、 linux 系统默认编码utf-8
修改和查看linux编码问题:
[html] view plaincopy在CODE上查看代码片派生到我的代码片
[root@test-1 ~]# vi /etc/sysconfig/i18n
LANG=”en_US.UTF-8”
SYSFONT=”latarcyrheb-sun16”
linux默认编码UFT-8,终端输出默认编码自然是UTF-8,window中使用secureCRT默认编码是GBK,
链接到linux系统输出乱码,因为Linux默认是utf-8,所以把secureCRT的默认编码修改为utf-8就ok。

WINDOWS 默认编码GBK
了解了系统平台的的编码,才容易解决编码问题。
WIN7中tomcat启动的控制台默认编码是GBK,一般软件默认采用系统默认字符集。
tomcat的应用一般常用的国际编码是utf-8,应用输出采用系统默认编码GBK,
所以乱码,再启动jvm时设置成-Dfile.encoding=”UTF-8”,应用乱码问题解决。

参考资料
参考资料

猜你喜欢

转载自blog.csdn.net/miracle_8/article/details/80289893
今日推荐