UTF-8 BOM又叫UTF-8 签名,是为了与UTF-16,UTF-32区分才加上的BOM。
BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器 识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。
没想到困惑我很久的居然是UTF-8编码的BOM,之前在部分采用UTF-8 编码的页面会平白多出一个空行,使用DREAMWEAVER编辑网页的时候,采用UTF-8编码时会自动为网页添加BOM签名,于是问题就产生了,使用最 新的EDITPLUS 2.30版可以去除BOM,这样,我的网页就不再多出一个空行,但非常奇怪的问题就是,我之前用PHP生成的静态页面没有空行,而采用HTML文件作为模 版的网页会自动多出一个空行
多出一个空行不要紧,最主要的是一些网页会因此表现失常。
如:utf-8 版本dedecms升级完5.5后,有些栏目页空白。原因是用Dreamwear等编辑器编写过。而PHP本身不识别这个BOM。于是出错。解决方案有两个:一个是用程序判断产生的这个UTF-8内容中增加BOM的信息即比正常的信息多的三个字节 EF BB BF。 删除即可。另一个方法是,用UlreaEdit、editplus等另存成utf-8无BOM版本。
资料:
http://www.dayanmei.com/blog.php/ID_370.htm
http://blog.joycode.com/ghj/archive/2008/06/25/115160.aspx
