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”,应用乱码问题解决。
原文:https://blog.csdn.net/miracle_8/article/details/80289893