idea編譯代碼出現亂碼(刪除.idea下encodings.xml中非UTF-8的文件)

問題:

源碼如下

public class BusinessException extends RuntimeException {
    private static final long serialVersionUID = 1L;
    private String aa ="上課時開始";
    protected final String message;

    public BusinessException(String message)
    {
        this.message = message;
    }

    @Override
    public String getMessage()
    {
        return message;
    }
}

用idea編譯(運行項目,使用默認編譯)

public class BusinessException extends RuntimeException {
    private static final long serialVersionUID = 1L;
    private String aa = "涓婅\ue1f3鏃跺紑濮�";
    protected final String message;

    public BusinessException(String message) {
        this.message = message;
    }

    public String getMessage() {
        return this.message;
    }
}

如圖所示,成員變量aa編譯後,變成了亂碼。

(ps:使用maven進行編譯不會出現亂碼,但在程序執行過程中,中文還是會變成亂碼)

 

原因:idea進行編譯時文件編碼格式與idea進行編譯時採用的編碼格式不一致;

解決方案:

1)在idea中選擇:file -- setting -- Edit -- File Encoding 下按圖所示設置爲UTF-8

2)設置Java Complier,添加 -encoding utf-8

3)正常情況下再次編譯應該不會再出先亂碼了,如果還出現可以嘗試一下步驟:

  • 重啓idea(如果不管用,查看下面那條)
  • 在項目下的.idea文件夾下找到encodings.xml,刪除其中非UTF-8的文件,如下圖:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章