加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

HTML页面顶部出现空白部分(#65279字符?)的解决办法

(2015-11-16 14:02:11)
标签:

65279字符

html页面顶部出现空白

分类: web
不同的程序和软件更改的方式都差不多,下面介绍三个:
1、

在火狐下面用Firebug,选择body,点编辑html的时候,看到是多出了一个这个代表的意思,还真不知道,搜索后了解到是一种中文的编码规则,

UTF-8不需要BOM来表明字节顺序。

制作模板用的是dreamweaver,编码用的就是utf-8,于是在页面属性->标题/编码中,把Unicode签名(BOM)去掉,重新生成后,空白行没有了。

2、专门针对PHP

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

而且只会在chrome和edge浏览器出现,ff则不会出现这个问题。由于该页面是由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作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。

知道问题的原因之后,便很好解决了。我使用的是 phpstorm,在菜单栏文件里有“remove bom”选项,可以直接存为UTF-8无BOM模式。如果使用notepad++或其他工具的也可以选择“另存为”,然后在编码那儿选择“UTF-8无BOM”即可解决。

http://s7/mw690/001XHsxmgy6X2NRB4aya6&690

3、专门针对jsp

在用 include 包含JSP 文件时发现最终生成的页面上会有多余的空白行,源代码中有个不能显示的字符,在查了一些文章后发现问题出在编辑器上。之前我用 Editplus 2.11 保存 JSP 文件为 UTF-8 编码,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),它的表示的是 Unicode 标记(BOM)。因此解决办法就是将代码保存的时候将 BOM 前面的勾去掉。可以用 EmEditor , Editplus 2.21 来保存。


 表示 "ZERO WIDTH NO-BREAK SPACE",更详细的请见
http://www.fileformat.info/info/unicode/char/feff/index.htm

发现问题的测试代码:
test.jsp
---------------------

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有