温馨提醒

如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢

本文最后更新于2023年10月19日,已超过 180天没有更新

查看模版代码并没有任何异常,用 firebug 查看发现问题主要是:模板文件生成 html 文件之后会在 body 开头处加入一个空白子符 &#65279 ,导致页面头部会出现一个空白行。

接到" &#65279 字符"问题后,我也是百思不得其解,首先我怀疑是代码不清洁的问题,仔仔细细检查了整个模板,发现代码没有冗余的地方;后来也有想到不可见控制符的问题,但是找来找去也没发现;最后就用 Editplus 编辑器重新打开模板检查,当我重新另存为的时候发现原来页面的编码是 UTF-8 + BOM。

这种编码方式一般会在 windows 操作系统中出现,比如 WINDOWS 自带的记事本等软件,在保存一个以 UTF-8 编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以 UTF-8 编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP 来说,BOM 是个大麻烦。因为 PHP并 不会忽略BOM,所以在读取、包含或者引用这些文件时,会把 BOM 作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为 0,也无法让整个网页紧贴浏览器顶部,因为在 html 一开头有这 3 个隐藏字符 !

解决办法:

遇到这种问题的解决方法就是用 Editplus 2.12 版本以上编辑器或者 EmEditor 或者 UltraEdit(需要取消'添加BOM'的相关选项)或者 Dreamweaver(需要取消'添加BOM'的相关选项)重新保存一下 utf-8 格式的文档!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。