专栏首页架构师进阶Error:(1, 1) java: 非法字符: '\ufeff'

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

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」有什么区别?网页代码一般使用哪个?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【spring cloud】 网关Zuul(过滤:安全、监控、限流、路由)

    1. 添加依赖 创建项目tcloud-gateway-zuulserver , pom.xml内容如下

    用户5640963
  • SpringMVC+redis整合

    在网络上有一个很多人转载的springmvc+redis整合的案例,不过一直不完整,也是被各种人装来转去,现在基本将该框架搭建起来。

    用户5640963
  • 各大公司Java后端开发面试题总结(2017更新)

    Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。

    用户5640963
  • Spring高频面试题,你能答的上哪些?(高级篇)

    5、BeanFactory 和 ApplicationContext 有什么区别?

    Java架构
  • SpringBoot当中如何整合静态html(模拟SpringMVC)

    整合静态html(模拟SpringMVC): 1)在上一个项目中,在src/main目录下,添加resources/static/index.html:(参考目...

    马克java社区
  • 聊聊spring cloud的ConsulServer

    spring-cloud-consul-discovery-2.1.2.RELEASE-sources.jar!/org/springframework/clo...

    codecraft
  • 认证鉴权与API权限控制在微服务架构中的设计与实现:授权码模式

    引言: 之前系列文章《认证鉴权与API权限控制在微服务架构中的设计与实现》,前面文章已经将认证鉴权与API权限控制的流程和主要细节讲解完。由于有些同学想了解下授...

    猿哥
  • springboot 入门

    配置pom.xml文件, 使用maven-compiler-plugins插件锁定jdk版本和maven-surefire-plugins插件配置maven-t...

    用户5640963
  • Spring 源码分析:不得不重视的 Transaction 事务

    业务系统的数据,一般最后都会落入到数据库中,例如 MySQL、Oracle 等主流数据库,不可避免的,在数据更新时,有可能会遇到错误,这时需要将之前的数据更新操...

    纯洁的微笑
  • springboot 注解

      Spring Boot会自动根据你jar包的依赖来自动配置项目。例如当你项目下面有HSQLDB的依赖时,Spring   Boot会创建默认的内存数据库的数...

    用户5640963

扫码关注云+社区

领取腾讯云代金券