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