一. 问题解决办法

在昨天,帮助同学把他的Android项目从eclipse迁移到Android Studio上面的时候,编译时,Android Studio报了一个错误,

***.java Error:(1, 1) 错误: 非法字符: '\ufeff' Error:(1, 10) 错误: 需要class, interface或enum

经过查看,该文件采用的编码方式为UTF-8带BOM的格式,随后,使用NotePad++打开该文件,并将文件格式改为以UTF-8无BOM格式编码(如图1:选择格式第二项)并保存之后问题得以解决。

图1

二. UTF-8与UTF-8无BOM

BOM:Byte Order Mark.
BOM是用来标记编码的大小端的,对UTF-8编码并没有用处。但是因为在Windows中是使用BOM来标记的文件的编码方式的,所以文件在Windows中使用记事本编辑过并保存为了UTF-8之后,文件格式就会变成UTF-8有BOM的编码格式,即在文件的开头有这样的三个字节:EF、BB、BF。在应用中,大多数时候并不支持这种格式,就比如这次遇到的问题,我们就要将文件重新编辑保存为UTF-8无BOM格式。