cmd中執(zhí)行java文件出現(xiàn)亂碼如下:(推薦:java視頻教程)
原因:
由于JDK是國(guó)際版的,在編譯的時(shí)候,如果我們沒(méi)有用-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)中形成我們見(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)不兼容的情況。
解決方法:
1、轉(zhuǎn)換成UTF-8編碼格式,但仍然有錯(cuò)
解決辦法是:應(yīng)該使用-encoding參數(shù)指明編碼方式:javac -encoding UTF-8 XX.java
2、開(kāi)始–>計(jì)算機(jī)–>鼠標(biāo)反鍵(鼠標(biāo)右鍵)–>屬性–>高級(jí)系統(tǒng)設(shè)置–>環(huán)境變量–>系統(tǒng)變量
新建。然后輸入:“JAVA_TOOL_OPTIONS”變量,值為“-Dfile.encoding=UTF-8”
然后確定、確定、在確定后。新開(kāi)命令行窗口,再次輸入javac命令。