環(huán)境:win10,idea13.1.1 我是個(gè)idea的忠實(shí)用戶,新公司的項(xiàng)目都是用eclipse做的,通過svn拉下代碼后發(fā)現(xiàn),注釋的內(nèi)容里,中文內(nèi)容都是亂碼。問過項(xiàng)目負(fù)責(zé)人,說可能是GBK編碼。 但是,我通過idea的setting設(shè)置了編碼,試了5種編碼都沒用,中文內(nèi)容還是亂碼。最后還是自己試出來解決方案。 詳細(xì)的原因請參考最后的講解。 亂碼示例圖 下面來介紹解決方法 第一步是點(diǎn)擊右下角,如圖所示的位置,然后選擇GBK(由于我的項(xiàng)目之前是GBK編碼,所以在這里我要是選擇的GBK)。另外提醒一點(diǎn),如果你的idea右下角沒有這個(gè)按鈕,請?jiān)谀愕木幋a界面中隨意右鍵,然后選擇“File Encoding”,效果一樣。
第二步會(huì)出現(xiàn)如下提示,這里很重要,不要選錯(cuò),先選擇“Reload”,這里請嚴(yán)格按照我說的來,文章后面會(huì)告訴你如果選錯(cuò)會(huì)有什么后果 第三步,就是再次點(diǎn)擊這個(gè)地方,然后選擇UTF-8格式 最后一步就是選擇Convert,這就結(jié)束了 相信有些朋友已經(jīng)有點(diǎn)頭緒了。這個(gè)“Reload”選擇后不會(huì)改變文件和內(nèi)容的編碼格式,而是將IDE本身的解碼格式由我原先的UTF-8換成了GBK,由GBK的解碼格式解GBK的文件就不會(huì)再看到亂碼。而“Convert”是將GBK格式的文件內(nèi)容轉(zhuǎn)換成了UTF-8,同時(shí)將IDE的解碼格式也換成UTF-8。 所以之前說的,如果你第一次選擇了“Convert”那么就會(huì)由原來的亂碼弄成另一種亂碼,反正我是沒弄回來過。好在我是在git的branch上做的實(shí)驗(yàn),我的源碼文件還保留著,所以沒有問題。 在以上的基礎(chǔ)上,我猜測idea對java文件的編輯,應(yīng)該是讀取文件內(nèi)容,并以IDE本身指定的encoding來進(jìn)行解讀。 舉例,如果IDE的encoding為GBK,而java文件是UTF8那么IDE讀取文件的時(shí)候就會(huì)顯示亂碼,如果這個(gè)時(shí)候使用上文所說的“Convert”來講亂碼轉(zhuǎn)換成UTF8文件。 重點(diǎn)來了,這個(gè)時(shí)候文件本身是UTF8格式編碼,轉(zhuǎn)成UTF8格式應(yīng)該是不會(huì)有問題的。但結(jié)果是,你由GBKencoding換成用UTF8的encoding去解碼這個(gè)文件發(fā)現(xiàn)還是亂碼。 原因是由于IDE用GBK讀取UTF8文件時(shí)顯示的是亂碼,文件并沒有亂碼,而是IDE讀取出來的文件由于encoding解碼不對才顯示的亂碼。那么你這個(gè)時(shí)候使用“Convert”不過是將IDE讀取的內(nèi)容轉(zhuǎn)換成了UTF8,而并非是將文件內(nèi)容轉(zhuǎn)換成UTF8。就這么一個(gè)微小的區(qū)別,但結(jié)果卻是完全不可控制的。 |
|