原因
utf-8+bom比utf-8多了三个字节前缀:0xEF0xBB0xBF,有这三个字节前缀的文本或字符串,程序可以自动判断它为utf-8格式,并按照utf-8格式来解析文本或字符串。
解决办法参考
https://blog.csdn.net/u013412790/article/details/79059346
- 首先
检查Idea
Setting->Editor->Code Style->File Encodings
中create utf-8 files 的选项
with BOM,with not BOM ,和with BOM under windows ,with no BOM otherwise。
选择 not BOM - 总之:把编码改回普通的UTF-8编码就可以了
拓展
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 之外的操作系统里会带来问题。
作者:无心水
来源:CSDN
原文:https://blog.csdn.net/RickyIT/article/details/75353843