关于UTF-8的BOM标识和非法字符\65279
的错误,已经遇到过好几次了,在这里记录一下。关于UTF-8带BOM和UTF-8不带BOM的区别,网上有很多解释。我遇到的最多的就是文件在Windows上被别人修改后,在我的电脑上会出错(我一直使用linux和macos),一般都是导入项目的时候,进行编译就会有问题。
IDEA导入项目出现\65279
非法字符
这个问题也是由于带BOM的UTF-8格式引起的,至少我遇到都是这样,一般在linux上和macos上导入项目会发生,可能是由于在windows上用一些软件编辑过文件导致的。解决办法也很简单,下面就说一下解决办法。
比如说我将一个项目导入到idea发现报错了,可以使用命令行,首先进入src目录的同级目录:
- 输入:
vi
- 输入:
:args ./src/**
这里的**
表示循环src下的所有文件夹 - 输入:
:ar
这一步可选,目的是查看当前添加了哪些目标文件 - 输入:
:argdo set nobomb | update!
这句意思是对args列表中的文件分别执行 set nobomb 然后强制保存
以上就是步骤,这样就可以了。
UTF-8中BOM标志导致项目读取配置文件为空
最近公司部署项目到刀片服务器上时候,发现项目可以正常运行,读取配置文件也可以在指定位置找到配置文件,但是就是读取配置文件内容的时候,一直是null。若干人各种调试无果。我想应该是配置文件被人在windows上编辑过或者windows上新建的文本文件,然后放进服务器上的。于是就将服务器配置文件拿下来和我本地的文件对比下,果然是由于UTF-8带有BOM的原因。
重新在服务器上新建配置文件,把内容重新复制进去,完成!
一般properties和xml文件可能会遇到这个问题。