在学习java 解压缩的时候发现编码方式是比较突出的问题。
一般情况下用System.getProperties(),可以获取很多系统方面的信息,
System.getProperties().list(System.out);
得到以下:
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:\Program Files\Java\jre6\bin
java.vm.version=11.3-b02
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=Service Pack 1
java.vm.specification.name=Java Virtual Machine Specification。。。。。(以下省略)
其中file.encoding=UTF-8,这个不是真正的系统编码方式,因为我用的win7系统,默认的是GBK。
而出现这种现象是原因是:运行的java文件的编码方式是UTF-8。
那么如何获取系统的编码方式呢?
其一,还是通过
System.getProperties()
不过这次我们需要获取的是操作系统,即是os.name,从而确定编码方式。
其二,调用系统方法,最简单的莫过于Runtime.getRuntime().exec(command)这个方法了。