尽管设置为UTF-8,但Maven编译期间的“非法字符:\ 65279”

时间:2013-07-09 18:23:59

标签: java maven utf-8

我正在尝试编译一个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>

4 个答案:

答案 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类之后,这发生在我身上。这改变了文件的编码。

我做的一个简单的伎俩是:

  1. 从Android Studio / Eclipse
  2. 打开您的课程
  3. Ctrl + A然后按Ctrl + X
  4. 立即删除您的空课
  5. 创建一个名称相同的新类
  6. Ctrl + V代码
  7. 完成

答案 3 :(得分:0)

==,看看等号的区别。正确的英语类型使用正确的英语类型,但左侧较长的通常用于中文语言。