最简单的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: 

https://www.zhihu.com/question/348139746/answer/838176150

posted @ 2020-05-21 17:57  不能不明白  阅读(350)  评论(0)    收藏  举报