有效解决页面&#65279空白,百度收录乱码�1�3问题

  • 酉灿
  • 收藏夹吃灰系列
  • Jun 27, 2019

几个常出现的问题:
1.网站打开空白
2.HTML页面顶部出现空白部分(&#65279)字符
3.网站收录出现乱码,如“�1�3”

原因:

使用PHP拼接HTML页面,页面顶部出现小段空白,其实是UTF-8有BOM编码导致的,只需另存为无BOM格式即可解决。

而且只会在chrome和edge浏览器出现,firefox则不会出现这个问题。由于该页面是由PHP+HTML模板拼接接,因此先后排查了html文件、JavaScript文件、php文件。均未发现问题。

使用chrome F12发现空白处是一串&#65279字符。通过搜索,了解到这原来是UTF-8的编码问题。
 

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

解决方法可以是:

1.选用专业的编辑器,例如notepad++,sublime,editplus这样不会自动签名。

2.sublime通过如下操作File -> Save with Encoding -> UTF-8保存后即可去除bom

3.notepad++选中格式 -> 以UTF-8格式编码 选项即可去除
4.制作模板用的是dreamweaver,编码用的就是utf-8,于是在页面属性->标题/编码中,把Unicode签名(BOM)去掉,重新生成后,空白行没有了。

打赏