当前位置: 首页 > news >正文

idea编译报错 java: 非法字符: ‘\ufeff‘ 解决方案

问题描述

今天在项目中新建了一个class类,编译后却报错了

java: 非法字符: '\ufeff'

出现问题的原因

出现这样的问题来源于这个BOM,一般在编写时候会给你默认添加这样的一个BOM头,是隐藏起来的,编译时候就会给出现编码混乱问题;

BOM是什么玩意?

编码带BOM(字节顺序标记)是指在文本文件的开头添加特殊的字节序列,用于指示文件的编码方式和字节顺序。BOM通常用于Unicode编码的文本文件,如UTF-8、UTF-16等。

BOM的作用是帮助解析器确定文本文件的编码方式和字节顺序,以正确地解析和显示文件内容。它是一个特殊的标记,由几个字节组成,放置在文件的开头位置。

在UTF-8编码中,BOM由3个字节组成(0xEF, 0xBB, 0xBF),用于表示文件采用UTF-8编码。在UTF-16编码中,BOM由2个字节组成,有两种形式:大端序(Big-Endian)和小端序(Little-Endian)。大端序的BOM由两个字节(0xFE, 0xFF)组成,小端序的BOM由两个字节(0xFF, 0xFE)组成。

编码带BOM的文件可以帮助解析器自动检测文件的编码方式,使其能够正确地解析和处理文件内容。然而,有些应用程序可能不支持带BOM的文件,或者BOM可能会被错误地解释为文件内容的一部分,因此在某些情况下,使用带BOM的编码方式可能会带来一些问题。

解决方案
方案一、治标不治本

在右下角先点击 UTF-8 ,在弹出的窗口中选择Remove BOM,意思是移除这个 BOM;

方案二、治标不治本

打开文件的所在目录,右击文件 -> Open In -> Explorer

然后用Notepad++ 打开文件,点击编码后发现,当前的编码是 UTF-8 带 BOM的,所以我们只需要点击下面转为UTF-8编码即可解决问题

方案三、治标不治本

点击右下角的 UTF-8 ,将其先转为GBK编码,然后在转回UTF-8即可;

一定要选择 Convert, 是转换的意思

方案四、一劳永逸解决

想要不会每次新建项目时候都会出现这种问题,那就在idea设置-文件编码这里选择with NO BOM。然后应用,确定下次新建时候就不会出现这样的问题了;

http://www.lryc.cn/news/602320.html

相关文章:

  • 解决windows系统下 idea、CLion 控制台中文乱码问题
  • 机器学习sklearn:不纯度与决策树构建
  • Rust实战:AI与机器学习自动炒饭机器学习
  • Linux系统Centos7 安装mysql5.7教程 和mysql的简单指令
  • 搭建HAProxy高可用负载均衡系统
  • 【拓扑排序 缩点】P2272 [ZJOI2007] 最大半连通子图|省选-
  • Linux应用开发基础知识——LInux学习FreeType编程(七)
  • 【C++进阶】---- 二叉搜索树
  • 基于LangGraph Cli的智能数据分析助手
  • Android中PID与UID的区别和联系(2)
  • Go 语言面试题
  • 数据分析干货| 衡石科技可视化创作之仪表盘控件如何设置
  • GitLab 公共仓库:coding 用到的 git 命令
  • Springboot社区养老保险系统小程序
  • 一文理清 Linux 软件管理核心知识:从程序组成到包管理工具
  • Java面试宝典:MySQL8新特性
  • shell学习从入门到精通(第二部分)
  • 机器学习sklearn:决策树的参数、属性、接口
  • nccl中__syncthreads的作用及例子 (来自deepseek)
  • 135端口与WMI攻防全解析
  • 网络安全基础知识【4】
  • python中类变量 __slots__ 解析
  • 5190 - 提高:DFS序和欧拉序:树上操作(区域修改1)
  • 排序算法 (Sorting Algorithms)-JS示例
  • AI原生应用:从人机关系重构到数字空间革命
  • RF随机森林分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角
  • 力扣7:整数反转
  • OCR 赋能合同抽取:不良资产管理公司的效率加速器
  • Kafka 顺序消费实现与优化策略
  • 数据结构之顺序表链表栈