文档章节

Error:(1, 1) java: 非法字符: '\ufeff'

wuxinshui
 wuxinshui
发布于 2017/08/17 00:24
字数 458
阅读 220
收藏 0

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

前言

开发过程中,在启动Spring Boot的时候,遇到这样的问题:

Error:(1, 1) java: 非法字符: '\ufeff'

运行mvn compile也是报同样的错误。感觉好奇怪啊,仔细看看对应的行没啥问题啊。我用的工具是IntelliJ IDEA 2016.3(64),同样的代码在Eclipse中是没问题的,Spring Boot正常启动。

问题

在启动服务的时候报错

这里写图片描述

解决方案

下载个文本工具,我用的是Notepad++.打开刚刚出问题的文件看右下角:

这里写图片描述

提示当前编码格式是UTF-8-BOM。菜单栏中也可以看。

这里写图片描述

把当前的内容全部剪切,在菜单栏切换编码格式。

这里写图片描述

格式切换完后,把内容粘贴一下就OK。

这里写图片描述

扩展

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 之外的操作系统里会带来问题。

参考

UTF8最好不要带BOM,附许多经典评论

「带 BOM 的 UTF-8」和「无 BOM 的 UTF-8」有什么区别?网页代码一般使用哪个?

© 著作权归作者所有

wuxinshui

wuxinshui

粉丝 3
博文 77
码字总数 46949
作品 0
普陀
程序员
私信 提问
android ant Compile failed; see the compiler error

android ant 打包遇到 Compile failed; see the compiler error output for details. 1.把jdk换成jdk1.7 就能看到中文的错误信息,不然有的地方是乱码都看不懂。。。 2.如果遇到 错误: 非法字...

平凡简单
2014/03/17
196
0
maven报错非法字符:\65279 错误

开发中一个项目很早就报这个错,maven报错非法字符:65279 错误,今天终于忍无可忍要解决它:编译java文件的时候,有些java文件报非法字符 65279错误,在网上找和很多方法,也试了很多方法,...

zkool
2013/07/05
13.1K
5
Idea 导入 MyEclipse项目 错误 Error:(1, 1) java: 非法字符: \65279

在用idea导入myeclipse导过的项目时,报错 Error:(1, 1) java: 非法字符: 65279 Error:(1, 10) java: 需要class, interface或enum 网上找的的产生原因: IntelliJ IDEA对设置为“UTF-8”编码...

小海bug
2018/12/07
707
0
这是一个关于maven项目的问题,碰到过很多类似的情况有谁可以帮忙解释下

[INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ vcm --- [WARNING] F......

海_风
2013/09/18
6.4K
11
Maven配置Spring-Hibernate错误日志

Log1、MVC 缺少jar包 :org.springframework.web.servlet --status:已解决 Error loading WebappClassLoader context: /springhibernate delegate: false repositories: /WEB-INF/classes/ ......

boonya
2012/11/20
895
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部