標(biāo)簽: 使用命令行javac命令編譯java文件, 提示錯(cuò)誤:編碼GBK的不可映射字符。 在編譯的時(shí)候,如果我們沒(méi)有用-encoding參數(shù)指定我們的JAVA源程序的編碼格式,則javac.exe會(huì)獲得我們操作系統(tǒng)默認(rèn)采用的編碼格式。 JDK根據(jù)操作系統(tǒng)的file.encoding參數(shù)(它保存的就是操作系統(tǒng)默認(rèn)的編碼格式,如WIN2k,它的值為GBK),把源程序從默認(rèn)編碼格式轉(zhuǎn)化為JDK內(nèi)部默認(rèn)的UNICODE格式放入內(nèi)存中。然后把轉(zhuǎn)換后的unicode格式的文件進(jìn)行編譯成.class類文件,此時(shí).class文件是UNICODE編碼的,它暫放在內(nèi)存中,最后JDK將此以UNICODE編碼的編譯后的class文件保存到我們的操作系統(tǒng)中形成我們見(jiàn)到的.class文件。 對(duì)我們來(lái)說(shuō),我們最終獲得的.class文件是內(nèi)容以UNICODE編碼格式保存的類文件,它內(nèi)部包含我們?cè)闯绦蛑械闹形淖址?,只不過(guò)此時(shí)它己經(jīng)由file.encoding格式轉(zhuǎn)化為UNICODE格式了。當(dāng)我們不加設(shè)置就編譯時(shí),相當(dāng)于使用了參數(shù):javac -encoding gbk XX.java,當(dāng)然就會(huì)出現(xiàn)不兼容的情況。 解決辦法:使用-encoding參數(shù)指明編碼方式:javac -encoding UTF-8 XX.java 當(dāng)然,更好的辦法是使用IDE輸出,比如Eclipse expert jar文件。
標(biāo)簽: |
|
來(lái)自: herowuking > 《Java》