1.情景展示
在cmd窗口當中,使用javac命令編譯java文件,報錯信息如下:
錯誤: 編碼GBK的不可映射字符,如何解決?
2.原因分析
根源:java文件中含有中文,不管是代碼還是注釋。
字符集沖突,windows中文版,默認的字符集為:GBK,而當你的java文件當中的漢字不是字符集:GBK時,javac進行編譯的時候就會報錯。
3.解決方案
方式一:以java文件原有編碼運行;(推薦使用)
我們可以通過notepad++或者notepad打開該文件,在右下角可以查看到當前文件的字符編碼。
白色是notepad++,黑色是notepad。
現在,我們知道將要編譯的java文件的字符編碼為:UTF-8,那我們下面就以這種格式來對文件進行重新編譯;
編譯成功。
方式二:改文件字符集;
將java文件的字符集編碼改成:gb2312。
使用notepad打開該java文件;
右下角,底部,點擊原先的字符集--》通過編碼保存--》更多編碼選項--》找到gb2312;
然后,Ctrl+S進行保存(而且,即使字符集改了,原先的中文保持不變,不會造成亂碼,這是notepad的優點);
我們重新來到黑窗口,執行javac命令;
編譯成功。
方式三:刪掉文件當中的中文。
將注釋當中的中文刪掉,將代碼中的中文改成拼音或者英文,即使你是UTF-8,也可以正常編譯;
當然,這種方式比較笨,不推薦使用,但是,親測可行。