idea编译代码出现乱码(删除.idea下encodings.xml中非UTF-8的文件)

    技术2022-07-10  172

    问题:

    源码如下

    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的文件,如下图:

     

     

    Processed: 0.011, SQL: 9