cmd命令對java程序進行編譯時出現:編碼GBK的不可映射字符


原因:由於JDK是國際版的,在編譯的時候,如果我們沒有用-encoding參數指定JAVA源程序的編碼格式,則java.exe首先獲得我們才做系統默認采用的編碼格式,也即在編譯JAVA程序時,若我們不指定源程序文件的編碼格式,JDK首先獲得操作系統的file.encoding參數(它保存的就是操作系統默認的編碼格式,如win2k,他的值為GBK),然后JDK就把我們的JAVA源程序從file.encoding編碼格式轉化為JAVA內部默認的UNICODE格式放到內存中。之后,javac把轉換后的UNICODE格式的文件進行編譯成class類文件,此時.class文件是UNICODE編碼的,它暫放在內存中,緊接着,JDK將此以UNICODE編碼編譯后的.class文件保存到操作系統中形成我們見到的.class文件。但我們不加設置就編譯時,相當於使用了參數:javac -encoding gbk xx.java,就會出現不兼容的情況。

解決辦法:應該使用-encodin參數指明編碼方式:javac -encoding UTF-8 XX.java.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM