zblog博客文件模版页面头部出现#65279字符空白部分(&#65279)字符的完美解决办法

2019-01-26
0评论
/
2290阅读
爱搜啊

zblog博客文件模版页面头部出现#65279字符空白部分(&#65279)字符的完美解决办法

出现这个问题是因为PHP文件使用了UTF-8 BOM编码导致的。

最近遇到一个不算问题的问题,就是使用浏览器的chrome浏览器或者其他edge浏览器中使用审查元素发现顶部有一个&#65279如下图,本来应该在<head>标签内的代码也显示在<body>标签内,这虽然对收录和用户正常浏览不会造成任何影响,但是怎么看怎么不舒服啊。当时在百度查找这个&#65279这个到底什么什么东西。最后才发现是因为使用了win系统自动的记事本编辑了PHP文件导致的。

zblog博客文件模版页面头部出现#65279字符空白部分(&#65279)字符的完美解决办法

最近通过ftp维护网站,用记事本修改文件保存后,刷新html页面后,发现顶部有一小段空白。审查元素后发现字符页面头部出现#65279字符,通过搜索,了解到这原来是UTF-8的BOM的问题。

这个问题只会在chrome和edge浏览器出现。由于该HTML页面是由PHP解析模版生成的,因此先后排查了html模版文件、JavaScript文件、php文件,最后发现php文件存在BOM头。

UTF-8 + BOM编码方式一般会在windows操作系统中出现,比如WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。

它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,BOM是个大麻烦。

因为PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来,即我们看到的(#65279)字符。

还有以前安装了老白的zblog博客模板[自适应] 2.1(ydmm)后台字体会变大,看着非常难受,最后发现是因为模版的include.php文件也是BOM编码方式导致的,现在一切正常了,理论上只要是对前台有输出的插件include.php文件是BOM编码方式都会导致有&#65279代码,比如《百度链接提交工具(含熊掌号) 2》插件。

现在已经OK了,如下图

zblog博客文件模版页面头部出现#65279字符空白部分(&#65279)字符的完美解决办法


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


标签: zblog #65279
于2019-01-26发布