1,删除BOM,在vi以下运行以下的命令就可以
:set nobomb
2,原因:
所谓BOM,全称是Byte Order Mark。它是一个Unicode字符,通常出如今文本的开头,用来标识字节序(Big/Little Endian)。除此以外还能够标识编码(UTF-8/16/32)
对于UTF-8/16/32而言。它们名字中的8/16/32指的是编码单位是多少位的,也就是说。它们的编码单位各自是8/16/32位。换算成字节就是1/2/4字节。假设是多字节。就要牵扯到字节序,UTF-8以单字节为编码单位,所以不存在字节序。UTF-8基本的优点是能够兼容ASCII,但假设使用BOM的话。这个优点就荡然无存了,除此以外,BOM的存在还可能引发一些问题。所以要UTF-8编码中BOM的检測与删除。
參考:http://huoding.com/2011/05/14/78