Windows Eclipse下潜在的文件编码问题
如果你和我一样,在Windows下用Eclipse开发Java程序,尤其是Web程序,为了防止乱码问题,都习惯于将默认的文件编码设置为“UTF-8”。
BTW,设置默认文件编码的方法:
Java代码文件和其他文本文件:Windows->Preferences->General->Wordspace->Text file encoding
css,jsp,html文件:Windows->Preferences->Web->CSS Files/HTML Files/JSP Files
经过以上的设置之后,在Eclipse下新建文件都默认采用UTF-8编码,但是问题出现了,用下面这段java代码测试一下Windows系统的默认文件编码和在Eclipse中默认的文件编码分别是什么。
package com.lveyo.java.lite.system;import java.util.Properties;public class SystemProperties {public static void main(String[] args) {Properties props = System.getProperties();System.out.println("Java Version: " + props.getProperty("java.version"));System.out.println("Java Vendor: " + props.getProperty("java.vendor"));System.out.println("JVM Version: " + props.getProperty("java.vm.version"));System.out.println("Java Specification Version: " + props.getProperty("java.specification.version"));System.out.println("OS name: " + props.getProperty("os.name"));System.out.println("OS architecture: " + props.getProperty("os.arch"));System.out.println("OS Version: " + props.getProperty("os.version"));System.out.println("File Encoding: " + props.getProperty("file.encoding"));System.out.println("User Language: " + props.getProperty("user.language"));}}Java Version: 1.6.0_24Java Vendor: Sun Microsystems Inc.JVM Version: 19.1-b02Java Specification Version: 1.6OS name: Windows 7OS architecture: x86OS Version: 6.1File Encoding: UTF-8User Language: zh
D:\LiteJava\bin>java com.lveyo.java.lite.system.SystemPropertiesJava Version: 1.6.0_21Java Vendor: Sun Microsystems Inc.JVM Version: 17.0-b16Java Specification Version: 1.6OS name: Windows 7OS architecture: x86OS Version: 6.1File Encoding: GBKUser Language: zh