当前位置: 首页 > 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.dtcms.com/a/302317.html

相关文章:

  • OSPF笔记
  • 实验-静态路由
  • 解决windows系统下 idea、CLion 控制台中文乱码问题
  • 应急响应处置案例(上)
  • python-并发编程
  • 移动高清盒子6PRO-河南创维E900V22D-晶晨S905L3B-4+16G-安卓9-线刷固件包
  • 提取excel中的年月日
  • uniapp_微信小程序_根据胶囊按钮计算出的导航栏高度为什么不是44px?
  • 多光谱相机助力第四次全国农业普查-农业用地调查
  • Deepseek + browser-use 轻松实现浏览器自动化
  • 关于大视频大文件诸如超过5个G或10个G的视频上传详解原理以及-5种语言实现-优雅草卓伊凡|深蓝
  • 【7.26-7.28胜算云AI日报:首个开源3D世界生成模型腾讯混元、微软预示 8 月 GPT-5 发布、Nemotron推理、商汤悟能、DM夺金】
  • UniappDay04
  • 开源B端生态掘金:从Odoo二次开发到行业专属模块的技术变现
  • 【uniapp】---- 使用 uniapp 实现视频和图片上传且都可以预览展示
  • NVMe高速传输之摆脱XDMA设计20:PCIe请求模块设计(上)
  • 【mysql慢查询】
  • “太赫兹”
  • Java学习-----如何创建线程
  • 【科普】STM32CubeMX是配置工具,STM32CubeIDE是集成开发环境,二者互补但定位不同,前者负责初始化配置,后者专注代码开发调试。
  • DDD领域驱动中瘦模型与富态模型的核心区别
  • 设计模式(二十四)行为型:访问者模式详解
  • PostgreSQL日志配置全解析:从基础设置到进阶策略
  • 用 Python 获取电脑电池电量的各种案例
  • Python数据处理基础(学习笔记分享)
  • 【Spring WebFlux】 三、响应式流规范与实战
  • 科技赋能成长 脑力启迪未来
  • JVM 内存共享区域详解
  • Uniswap V2 成功上线 PolkaVM:Polkadot Hub 的里程碑时刻
  • 5190 - 提高:DFS序和欧拉序:树上操作(区域修改1)