UTF-8 BOM与UTF-8

UTF-8 BOM踩坑

Desc

UTF-8是一种常用的Unicode字符编码格式

UTF-8 BOM又叫做UTF-8 签名

BOM(Byte Order Mark)

通过在文件头部添加BOM来识别具体的文件编码格式

Diff

Windows系统会为UTF-8编码格式的文件头部添加EF BB BF三个字节

而在类Unix系统中并不鸟BOM

Summary

使用UTF-8BOM格式

除非你知道你自己在做什么,否则不要使用UTF-8 BOM格式

使用UTF-8 BOM会带来的问题(包括但不限于)

  • HTML空白行
  • 乱码
  • FILE操作读取报错
  • FILE操作读取第一行数据异常

常用编译器中,修改UTF-8 BOM => UTF-8

Sublime

File -> Save With Encoding -> UTF-8

Vim

1
2
3
4
5
## 查看文件是否含有BOM头
:set bomb?
## 清除BOM头
:set nobomb

Atom

Atom编辑器默认不可使用UTF-8 BOM