什么是BOM?编码
在UCS 编码中有一个叫作”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,因此不该该出如今实际传输中。UCS规范建议咱们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE”。it
这样若是接收者收到FEFF,就代表这个字节流是Big-Endian的;
若是收到FFFE,就代表这个字节流是Little-Endian的。所以字符”ZERO WIDTH NO-BREAK SPACE”又被称做BOM。
UTF-8不须要BOM来代表字节顺序,但能够用BOM来代表编码方式。
字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。因此若是接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。di
那么如何在PHP中输出BOM呢?文件
在全部内容输出以前:
print(chr(0xEF).chr(0xBB).chr(0xBF));字符