【问题标题】:error: illegal character: '\ufeff' in java错误:非法字符:java中的'\ufeff'
【发布时间】:2017-08-15 17:01:43
【问题描述】:

在 ubuntu 中编译 java 代码时出现此错误。

![收到此错误][1]

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

【问题讨论】:

  • 在文件开头看起来像一个 UTF-8 BOM(字节顺序标记)。那不应该在那里,只需将其删除即可。
  • 如何删除?
  • 您是如何创建文件的?使用不添加 BOM 的编辑器,或将编辑器配置为在编辑 UTF-8 时不添加 BOM

标签: java compilation ubuntu-16.04


【解决方案1】:

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

或者,您可以使用sed 将其删除:

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

【讨论】:

  • 或者在vim中:set nobomb:wq
  • :x :wq 短。 :)
  • 如果您使用 intellij 右键单击​​文件并选择“删除 BOM”
【解决方案2】:

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

【讨论】:

  • 在eclipse中是很有可能的:只要把文件的编码改成iso(右键文件->属性),删除BOM的前三个字符,保存文件重新打开即可。
【解决方案3】:

如果您使用的是 IntelliJ,请右键单击类文件并选择“删除 BOM”。 这应该从一开始就删除 BOM。

【讨论】:

  • 这很奇怪,但有时它一开始不起作用,所以我必须先添加 BOM,然后删除 BOM
【解决方案4】:

使用另一个编辑器,因为它似乎是一个 Eclipse UTF-8-BOM 问题。 将 UTF 类型转换为 UTF-8。

我还注意到;首先它对我不起作用,我将类型转换为 ANSI,然后将类型转换为 UTF-8 格式。它可以成为您的另一种替代解决方案

【讨论】:

    【解决方案5】:

    https://codebeautify.org/json-to-java-converter 下载模型会导致此类问题。

    创建新文件并从下载的文件中复制/粘贴所有数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      相关资源
      最近更新 更多