关于 Unicode BOM

昨晚意识到侧边栏跟 Ma Wenbao 的不一样,好像是我这边的发生了错位。仔细比较一番,发现主题文件里面的东西居然是一样的。尝试添加 margin:0; padding:0 也无效,只好作罢睡觉。

想到昨天用 Firefox 自带的元素查看器找到的一块空白区域,觉得应该就是它在作祟了。启用 Firebug,选中空白区域右键“编辑 html”,<div> 前多了一个 &#65279;,网上一搜,原来是 UTF-8 BOM 符(Byte-Order Mark,字节顺序标记)1

想起之前编辑文件的时候还特意将 ANSI 转成了 UTF-8 格式,原来该格式会默认给添加上 BOM,而 UTF-8 无 BOM 格式则不会添加这个 BOM,引发这个问题的原因就是模板文件使用的是 UTF-8 编码格式,而这个 BOM 符被浏览器渲染成了一行空白,从而导致页面错位。于是将文档格式转成 ANSI,问题解决(保存成 UTF-8 无 BOM 格式同样可行)。

总结

由于 BOM 是针对于 UTF-16 和 UTF-32 的,对于使用 UTF-8 编码格式的文件不需要 BOM ,所以在保存 UTF-8 文件时最好选择无 BOM 的编码。

  1. Wikipedia:字节顺序标记

文章作者
发布时间
分类
标签