解决idea中报错:Error:(1, 1) java: 非法字符: ‘\ufeff’
这是因为字符编码的问题。
在SpringBoot开发过程中,有事运行程序,会遇到了这样的报错:
Error:(1, 1) java: 非法字符: '\ufeff'
这是因为编码的问题,可以使用别的文本编辑器工具打开报错的文件,会发现
文件编码并不是简单的UTF-8
,而是UTF-8 with BOM
编码。
解决方法
步骤1. 修改文件编码
找一个文本编辑器,我使用的是sublime text3,打开后文件内容全选,剪切,修改编码方式
再把文件内容粘贴回来,保存。
步骤2. 修改idea编码方式
在idea中,settings–>File Encodings,按照图片修改设置
接下来就是重启idea
成功运行,问题解决。
接下来是科普时间
关于UTF-8 with BOM
编码的介绍:
UTF-8 with BOM
又叫UTF-8 签名,UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。当文本程序读取到以 EF BB BF开头的字节流时,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
但是!!UTF-8 with BOM
编码的文件相比UTF-8
编码的文件,会在文件开头多一个<U+FEFF>
。多出的这一串字符在普通的文本编辑器是看不到的。
在Linux中可以使用less命令查看,其他方式可能看不到。