我正在尝试编译一个Maven Java项目,文件保存为UTF-8,其BOM,但我从中的BOM字符中得到非法字符错误,尽管我将project.build.sourceEncoding
以及encoding
的{{1}}设置为maven-compiler-plugin
。
我错过了额外的设置吗? 我是否可以在不删除BOM的情况下进行编译(不允许对源进行任何更改,但我可以修改POM)?
错误:
java:C:\ code \ main \ src \ test \ java \ net \ initech \ finance \ FinanceTest.java:1:非法字符:\ 65279
财产:
UTF-8
插件:
<properties>
...
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>
答案 0 :(得分:11)
如果它是UTF-8而不是UTF-16,则BOM根本不起作用。它为什么放在那里?此外,只有Java在这里抱怨 - 而不是Maven。
查看相关的JDK-4508058 : UTF-8 encoding does not recognize initial BOM 。
答案 1 :(得分:8)
1.关闭你的项目。
2.尝试用记事本++打开你的文件,然后切换到'没有BOM的UTF-8'。
3.再次重新开启你的项目。
答案 2 :(得分:6)
在使用记事本打开Java类之后,这发生在我身上。这改变了文件的编码。
我做的一个简单的伎俩是:
答案 3 :(得分:0)
==,看看等号的区别。正确的英语类型使用正确的英语类型,但左侧较长的通常用于中文语言。