最简单的Java程序编译
这是一个最最简单的Hello World 程序,但是如果你在Windows 英文版情况下就会出乱码。
//文件名保存UTF-8
public class HelloWorld{ public static void main(String[] args){ System.out.println("欢迎大家学习Java"); } }
C:\>java HelloWorld 欢迎大家å¦ä¹ Java
这个很简单吧,主要是console的 code page 不对,还有没有中文字体对吧。

C:\>chcp 65001 Active code page: 65001 C:\>java HelloWorld 欢迎大家学习Java
妥了。
再来做个实验,这个又是何故呢?
C:\>javac -encoding utf-8 HelloWorld.java C:\>java HelloWorld ??????Java C:\>java -Dfile.encoding=utf-8 HelloWorld 欢迎大家学习Java
再来一段
//测试
import java.nio.charset.Charset;
import java.io.InputStreamReader;
import java.io.FileInputStream;
public class PrintCharSets {
public static void main(String[] args) throws Exception {
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("Charset.defaultCharset=" + Charset.defaultCharset());
System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.java")).getEncoding());
System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.class")).getEncoding());
System.out.println("欢迎大家学习Java");
}
}
C:\>javac PrintCharSets.java C:\>java PrintCharSets file.encoding=Cp1252 Charset.defaultCharset=windows-1252 InputStreamReader.getEncoding=Cp1252 InputStreamReader.getEncoding=Cp1252 欢迎大家学习Java C:\>java -Dfile.encoding=utf-8 PrintCharSets file.encoding=utf-8 Charset.defaultCharset=UTF-8 InputStreamReader.getEncoding=UTF8 InputStreamReader.getEncoding=UTF8 欢迎大家å¦ä¹ Java C:\>javac -encoding utf-8 PrintCharSets.java C:\>java PrintCharSets file.encoding=Cp1252 Charset.defaultCharset=windows-1252 InputStreamReader.getEncoding=Cp1252 InputStreamReader.getEncoding=Cp1252 ??????Java C:\>java -Dfile.encoding=utf-8 PrintCharSets file.encoding=utf-8 Charset.defaultCharset=UTF-8 InputStreamReader.getEncoding=UTF8 InputStreamReader.getEncoding=UTF8 欢迎大家学习Java
好吧。就先不去想了。等过一阵,再来看,继续学习Java。
reference:

浙公网安备 33010602011771号