1. 程式人生 > >處理警告:編碼 GBK 的不可映射字符

處理警告:編碼 GBK 的不可映射字符

figure 系統 程序 沒有 win AS tool con 應該

怎麽處理警告:編碼 GBK 的不可映射字符:
javac -encoding UTF-8 XX.java使用-encoding參數指明編碼方式;

或者
用記事本打開文件,然後另存為,選擇ANSI編碼,覆蓋掉該源文件,就OK了。

---
這是因為:由於JDK是國際版的,在編譯的時候,如果我們沒有用-encoding參數指定我們的JAVA源程序的編碼格式,則javac.exe首先獲得我們操作系統默認采用的編碼格式,也即在編譯java程序時,若我們不指定源程序文件的編碼格式,JDK首先獲得操作系統的file.encoding參數(它保存的就是操作系統默認的編碼格式,如WIN2k,它的值為GBK),然後JDK就把我們的java源程序從file.encoding編碼格式轉化為JAVA內部默認的UNICODE格式放入內存中。然後,javac把轉換後的unicode格式的文件進行編譯成.class類文件,此時.class文件是UNICODE編碼的,它暫放在內存中,緊接著,JDK將此以UNICODE編碼的編譯後的class文件保存到我們的操作系統中形成我們見到的.class文件。對我們來說,我們最終獲得的.class文件是內容以UNICODE編碼格式保存的類文件,它內部包含我們源程序中的中文字符串,只不過此時它己經由file.encoding格式轉化為UNICODE格式了。當我們不加設置就編譯時,相當於使用了參數:javac -encoding gbk XX.java,當然就會出現不兼容的情況。
解決辦法是:應該使用-encoding參數指明編碼方式:javac -encoding UTF-8 XX.java,這下沒警告了,運行也正確了在JCreator 4中設置:菜單:Configure --> Options --> JDK Tools --> Compiler,選中<Default>,然後選Edit,Parameters裏面,最前面添加:-encoding UTF-8。

備註:隨筆中內容來源於網上資料整理,僅供參考。

處理警告:編碼 GBK 的不可映射字符