最近搞一个PHP小项目,全部完工发布到服务器发现界面有变化,顶部多出一个空行,有些css样式也变形错位,排查了一整天,用UltraEdit一个一个和旧版文件比较,没有任何发现,最后在覆盖文件时发现旧的PHP比新的要小3Byte,预计到是UTF8文件格式的问题,保存成ANSI后问题消失,Google了一下说:
由于这个 BOM 的存在,PHP 会误认为文本内容已经输出,因此会对页面渲染造成影响,比如head 混乱。据说 PHP6 中已经修复这个问题。
原来UTF8文件还有个所谓BOM(Unicode签名)的属性,用Notepad保存的是包含BOM的,可以使用Dreamweaver进行修改,坑爹啊,还我一天的光阴!