今天拷贝了两个算法工具类进项目,在重启项目时报以下错误:
Error:(1, 1) java: 非法字符: '\ufeff'
网上查了相关资料后了解到这是因为这个文件的格式为UTF-8-BOM编码,而程序编译时是按照UTF-8的格式来编译运行的,因此报错。
所谓BOM,即Byte Order Mark,就是字节序标记。它是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部。程序报错正是代码不识别文件头部的\ufeff导致的。
解决办法非常简单,以我们平常最常用的Notepad++为例,在编码菜单一项中选择使用UTF-8编码即可去掉BOM头部,从而使程序正确编译运行。