Java錯誤:編碼 GBK 的不可映射字符 (0x8C)

今天在寫Java學習筆記的時候發現的問題。

public class Test{
    public static void main(String[] args){
        System.out.println("阿騰木的小世界");
    }
}

我在java中用syso輸出中文字符
但是在用javac -d命令編譯上述源代碼總會出現

錯誤:編碼 GBK 的不可映射字符 (0x8C)

上網搜了搜網上的解釋
  由於JDK是國際版的,我們在用javac編譯時,編譯程序首先會獲得我們操作系統默認採用的編碼格式(GBK),然後JDK就把Java源文件從GBK編碼格式轉換爲Java內部默認的Unicode格式放入內存中,然後javac把轉換後的Unicode格式的文件編譯成class類文件,此時,class文件是Unicode編碼的,它暫存在內存中,緊接着,JDK將此以Unicode格式編碼的class文件保存到操作系統中形成我們見到的class文件。當我們不加設置就編譯時,相當於使用了參數:javac -encoding GBK Test.java,就會出現不兼容的情況。

  • 解決方法:使用-encoding參數指明編碼方式:javac -encoding UTF-8 Test.java,就可以了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章