Java利用System.getProperty("file.encoding")获取编码分析
2016-12-16 16:20
721 查看
1.0 背景
System.out.println(System.getProperty("file.encoding"));1
1
[/code]
以前一直以为file.encoding的编码就是系统的编码,直到最近碰见一个怪异的情况:WEB工程中通过上述代码打印出来的编码是GB18030,而登录Linux服务器执行locale或者vi
/etc/sysconfig/i18n查出来的编码是UTF-8,竟然两者不一致,一度怀疑是不是服务器编码变了,引发了这篇文章的思考。
2.0 file.encoding编码是什么
file.encoding的值保存的是每个程序的main入口的那个Java文件的保存编码,是.java文件的编码。以下两种方式查验:
1、点击java文件–>属性–>text file encoding(other的值),使用eclipse 编译器,我查看的这个类IDE显示的是UTF-8编码。
2、通过运行java类来获取该编码。
public static void main(String[] args){ System.out.println(System.getProperty("file.encoding")); }1
2
3
1
2
3
[/code]
运行结果如下,图中显示编码为UTF-8,说明和IDE中显示的一致:
如果把这个文件的编码改成ISO-8859-1,看看显示的是什么编码?
上图中还是原来的那个java类,只不过编码类型改成了ISO-8859-1,记住我的本地机器的编码为UTF-8,看看其运行结果:
结果仍然是ISO-8859-1,可见file.encoding获取的仅仅是main入口函数的文件编码,并非是系统编码。
3.0 file.encoding编码是唯一的么
是不是每个java类型都有一个这个编码,下面我们测试一下,分别有两个类:Test.java 采用ISO-8859-1文件编码:
public class Test { public static void printEncoding(){ System.out.println(System.getProperty("file.encoding")); } }1
2
3
4
5
6
7
1
2
3
4
5
6
7
[/code]
FileUpload.java 采用UTF-8文件编码:
public class FileUpload { public static void main(String[] args){ System.out.println(System.getProperty("file.encoding")); Test.printEncoding(); } }1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
[/code]
预想,应该输出:UTF-8和ISO-8859-1。
实际输出:
UTF-8 UTF-81
2
1
2
[/code]
从实际输出可以看出,file.encoding是唯一的,与main入口函数的java类文件编码保持一致。
原文地址:
http://blog.csdn.net/loongshawn/article/details/50918506
相关文章推荐
- Java利用System.getProperty("file.encoding")获取编码分析
- Java利用System.getProperty("file.encoding")获取编码分析
- Java利用System.getProperty("file.encoding")获取编码分析
- JAVA利用System.getProperty("....")获取的值
- java.lang.System.getProperty("xxx")获取值
- java获取服务器、工程路径等相关信息System.getProperty("user.dir")
- Java项目读取配置文件时,FileNotFoundException 系统找不到指定的文件,System.getProperty("user.dir")的理解
- System.getProperty("file.encoding")
- JAVA System.getProperty("") 获取当前操作系统信息
- java的System.getProperty()方法可以获取的值
- java的System.getProperty()方法可以获取的值
- Java笔记——java的System.getProperty()方法可以获取的值
- java获取系统属性System.getProperty
- Java笔记——获取当前路径以及System.getProperty()使用
- java的System.getProperty()方法可以获取的值
- java的System.getProperty()方法可以获取的值
- java通过System.getProperty(String key)获取
- Java 路径 System.getProperty("key")的参数key
- java中获取操作系统参数的函数 System.getProperty(String key)