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