Error:(1, 1) java: 非法字符: ‘\ufeff’ Error:(1, 10) java: 需要class, interface或enum

原因

utf-8+bom比utf-8多了三个字节前缀:0xEF0xBB0xBF,有这三个字节前缀的文本或字符串,程序可以自动判断它为utf-8格式,并按照utf-8格式来解析文本或字符串。

解决办法参考
https://blog.csdn.net/u013412790/article/details/79059346

  • 首先
    检查Idea
    Setting->Editor->Code Style->File Encodings
    create utf-8 files 的选项
    with BOM,with not BOM ,和with BOM under windows ,with no BOM otherwise。
    选择 not BOM
  • 总之:把编码改回普通的UTF-8编码就可以了

拓展

UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM。
所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一下:把带有 BOM 的小端序 UTF-16 称作「Unicode」而又不详细说明,这也是微软的习惯)。
BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order)。微软在 UTF-8 中使用 BOM 是因为这样可以把 UTF-8 和 ASCII 等编码明确区分开,但这样的文件在 Windows 之外的操作系统里会带来问题。


作者:无心水
来源:CSDN
原文:https://blog.csdn.net/RickyIT/article/details/75353843

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误提示是因为在代码中缺少了classinterfaceenum的定义。可能是因为代码中没有定义任何类或接口,或者定义的类或接口名称有误。需要检查代码中是否有正确的类或接口定义,并确保名称正确。 ### 回答2: 这个错误是由于代码中出现了一个不符合Java语法规定的声明语句,它应该声明一个类、接口或枚举类型。我们来看一下这个错误信息: `error:(1, 10) java: 需要classinterfaceenum。` 这个错误信息的含义是,编译器在第1行第10个字符处发现了一个语法错误,因为Java编译器期望在这个位置上看到一个可以被编译的类、接口或枚举。如果你的代码中确实存在这样的声明,那么这个错误信息可能是因为你的声明的命名不规范或者关键字拼写错误导致的。 为了解决这个错误,你可以回到代码中检查可能出现问题的位置,看一下是否有声明出现了错误。如果确实存在错误,你可以将其修正。如果多次检查并未发现问题,你还可以查看你是否忘记了引入某个Java类库,或者代码的结构是否合理。如果以上步骤依然没有办法解决这个错误,你可以考虑在开发工具或者命令行中重新编译你的代码,并且确保你的开发环境与代码所依赖的环境兼容。 ### 回答3: 这个错误是Java编译器常见的错误之一,通常会在代码中出现语法错误时出现。error:(1,10) java: 需要classinterfaceenum的意思是编译器无法识别代码中的语法,所以无法将其编译成可执行的程序。具体来说,(1,10) 指明了出现错误的代码行数和列数。 造成这个错误的原因有很多,最常见的是代码中缺少关键字或语法错误。例如,可能缺少了类名、方法名或者没有正确引入外部包。还可能出现了拼写错误,即单词的拼写错误或者将关键字拼写错误,这些错误也可能会导致编译器无法识别代码。 要解决这个错误,需要不断调试代码,找出错误所在,并进行修正。首先,需要检查代码中是否缺少类名、方法名等关键字,以及是否正确引入外部包。其次,需要检查代码中是否出现了拼写错误,或者将关键字拼写错误。 最后,如果以上方法都不能解决问题,那么可能需要查看编译器的详细错误信息,以判断错误的具体位置。如果还是无法解决问题,那么可能需要求助于专业人士或者搜索相关的资料以获得更多帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值