# 修改dedeCMS模板后生成网站页面头部出现一条空白行的原因

*Published:* 2023-10-19
*Author:* 客服001

#### 温馨提醒

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

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



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

接到" &amp;#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 格式的文档！