不过若是你们使用 utf-8 编码来编写网页的时候, 每每会由于 bom (Byte Order Mark) 的问题,致使网页中常常出现一些不明的空行或者乱码字符。 这些都是由于 utf-8 编码方式对于 bom 不是强制的。所以 utf-8 编码在保存文件的时候,会出现不一样的处理方式。php
好比有的浏览器(FireFox)能够自动过滤掉全部 utf-8 bom , 有的 (IE) 只能过滤掉一次 bom (为何是一次? 当你出现 Include 屡次文件时就会碰上这个问题了:) );html
对此 w3.org 标准 FAQ 中对此问题有一个专门的描述:web
http://www.w3.org/International/questions/qa-utf8-bomwindows
在此我的认为对于这个问题最好的处理方式就是在编辑(保存)文件的时候统一去除 utf-8 bom , 同时又必须使得编辑器能够正确读出 utf-8 字符集,但惋惜目前 windows 系统中对于保存文件的处理方式缺省情款下都会自动加上 bom.浏览器
(经过抓包工具分析, google 中文页面统一使用 utf-8 编码方式,下载的页面中没有带有 bom 标识)服务器
操做系统: WindowsXP Professional , 缺省字符集:中文网络
1) notepad : 能够自动识别出没有带 bom 的 utf-8 编码格式文件,但不能够控制保存文件时是否添加 bom , 若是保存文件,那么会统一添加 bom 。编辑器
2)editplus : 不能自动识别出没有 bom 的 utf-8 编码格式文件,保存文件为 utf-8 时会自动添加 bom工具
3) UltraEdit : 对于字符编码的功能最为强大, 能够自动识别带 bom 和不带 bom 的 utf-8 文件 (能够配置) ; 保存的时候能够经过配置选择是否添加 bom.网站
(特别须要注意的是,保存一个新创建的文件时,须要选择另存为 utf-8 no bom 格式)
后来发现 Notepad ++ 也对于 utf-8 bom 支持比较好,推荐你们使用。
第二个:设置不显示Notice
首先,这个不是错误,是warning。因此若是服务器不能改,每一个变量使用前应当先定义。
方法1:服务器配置修改
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE
方法2:对变量进行初始化,规范书写(比较烦琐,由于有大量的变量)。但尚未找到好定义方法,望你们指教
方法3:每一个文件头部加上:error_reporting(0); 若是不行,只有打开php.ini,找到display_errors,设置为display_errors = Off。之后任何错误都不会提示。
总结:
如果有bom就是用第二个设置了不显示Notice也会出现样式乱的状况,因此最根本的仍是解决掉bom