Java错误:illegal character: '\ufeff'。

17

在Ubuntu编译Java代码时出现了此错误。

![Got this error][1]

error: illegal character: '\ufeff'
import java.net.*;
^
error: class, interface, or enum expected
import java.net.*;
        ^

2
看起来文件开头有UTF-8 BOM(字节顺序标记)。那里不应该有它,只需将其删除即可。 - Jim Garrison
1
如何移除它? - Saurabh Vemuri
4
你是如何创建这个文件的?使用不会添加BOM的编辑器,或在编辑UTF-8时配置你的编辑器不要添加BOM。 - Jim Garrison
6个回答

19

正如Jim Garrison所指出的那样,您可能在文件开头有一个字节顺序标记(BOM)。使用能够查看所有不可打印字符并将其删除的编辑器。

或者,您可以使用sed来删除它:

sed '1s/^.//' infile >> outfile

1
Or in vim :set nobomb :wq - lucidbrot
1
:x:wq 更短。 :) - Sunny Patel
13
如果您使用IntelliJ,右键单击文件,然后选择“删除BOM”。 - Samir Ghoneim

14

如果您正在使用IntelliJ,右键单击类文件,然后选择“删除BOM”即可。这样应该可以删除开头的BOM。


有时候很奇怪,它一开始不起作用,所以我必须先添加BOM,然后再删除BOM。 - RoK
在Netlify上,netlify.toml导致配置解析错误时,我也遇到了同样的问题。这个方法很有效,谢谢。 - Victor Zakharov

11

如果你使用的是Windows系统并且使用Eclipse(它没有从文件中删除BOM的功能),只需在Notepad ++中打开文件,在编码菜单中选择“UTF-8”,然后保存文件即可。


在Eclipse中很容易实现:只需更改文件的编码为ISO(右键单击文件->属性),删除前三个BOM字符,保存文件并重新打开即可。 - Lonzak

0

0

因為似乎是Eclipse UTF-8-BOM問題,請使用另一個編輯器。 將UTF類型轉換為UTF-8。

我也注意到;起初對我來說它不起作用,然後我將類型轉換為ANSI,再轉換為UTF-8格式。這可能是您的另一種替代解決方案。


0
如果你在Java中遇到了"illegal character: '\ufeff'"的错误,你需要移除IDE右下角的BOM。请往下滑动并点击UTF-8,然后移除BOM。点击查看图片

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接