2023年10月4日 星期三

解決 window OS 中java 原始碼,中文預設是Big5編碼,改utf-8亂碼問題

當javac 編譯 .java當時會使用OS預設的locale編碼,在台灣預設Big5也就是MS950,

但你如果把這檔案執行在非Big5如utf-8則會出現亂碼,

即使你把.java編碼一開始存成utf-8也無法改變這狀況,甚至javac會出現以下錯誤:

 unmappable character for encoding MS950

想解決這問題,請以下列步驟實行:

/*
  1.存檔字元集一開始就改utf-8,再打中文字,不然會亂碼
  2.存檔檔名為"TestChUTF8.java"
  3.javac 編譯請加上編譯參數 "-encoding UTF-8" 完整指令如下:
    javac -encoding UTF-8  TestChUTF8.java
  4.執行時請加上執行參數  "-Dfile.encoding=UTF-8" 完整指令如下:
    java -Dfile.encoding=UTF-8  TestChUTF8
    實驗結果:執行參數  "-Dfile.encoding=UTF-8" 可以不加,也可正常顯示
*/

public class TestChUTF8{
    public static void main(String[] args){
        System.out.println("哈哈中文^_^");
    }
}