Java代码在转换为UTF-8编码后,Eclipse编译运行没有问题,但是用Maven编译时,抛出非法字符65278错误。
原因在于,转换后文件头部带有BOM信息,而Maven不支持,删掉文件头的BOM信息即可。
可以通过以下命令,在命令行中批量删除文件中BOM信息:
perl -pi.bak -w -e 's/^\xEF\xBB\xBF' *.java
然后,删除.bak后缀的备份文件:
rm *.java.bak
现在可以查看文件中是否,还带有BOM信息,可以通过以下命令查询:
grep -r $'\xEF\xBB\xBF' * | grep .java
附加:
查看文件编码格式,命令:
$ file --mime-encoding filename