在使用notepad++編輯器編寫完java代碼,然后使用javac編譯時(shí)產(chǎn)生這樣的錯(cuò)誤?。ㄍ扑]學(xué)習(xí):notepad的使用)
代碼如下:
錯(cuò)誤如圖:
錯(cuò)誤原因:
由于JDK是國際版的,在編譯的時(shí)候,如果我們沒有用-encoding參數(shù)指定我們的JAVA源程序的編碼格式,則javac.exe首先獲得我們操作系統(tǒng)默認(rèn)采用的編碼格式,也即在編譯java程序時(shí),若我們不指定源程序文件的編碼格式,JDK首先獲得操作系統(tǒng)的file.encoding參數(shù)(它保存的就是操作系統(tǒng)默認(rèn)的編碼格式,如WIN2k,它的值為GBK),然后JDK就把我們的java源程序從file.encoding編碼格式轉(zhuǎn)化為JAVA內(nèi)部默認(rèn)的UNICODE格式放入內(nèi)存中。
然后,javac把轉(zhuǎn)換后的unicode格式的文件進(jìn)行編譯成.class類文件,此時(shí).class文件是UNICODE編碼的,它暫放在內(nèi)存中,緊接著,JDK將此以UNICODE編碼的編譯后的class文件保存到我們的操作系統(tǒng)中形成我們見到的.class文件。
對我們來說,我們最終獲得的.class文件是內(nèi)容以UNICODE編碼格式保存的類文件,它內(nèi)部包含我們源程序中的中文字符串,只不過此時(shí)它己經(jīng)由file.encoding格式轉(zhuǎn)化為UNICODE格式了。
當(dāng)我們不加設(shè)置就編譯時(shí),相當(dāng)于使用了參數(shù):javac -encoding gbk XX.java,當(dāng)然就會出現(xiàn)不兼容的情況。
解決辦法:
菜單:設(shè)置→首選項(xiàng)→新建,選擇編碼方式為ANSI。