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