在之前做实验室网站的时候遇到了一个很怪异的问题,具体表现为:
1. 页面在IE7中显示时,主页并没有问题,但是在点击主页链接之后出现的页面,字体很大并且不居中显示,也就是说并没有加载预定的CSS样式,但是在刷新一次后恢复正常。
2. 我做的是一个wordpress的主题,会用到最基本的get_header()/get_sidebar()之类的函数,但是在页面显示的时候,在header与sidebar之间存在一个空格

但是以上的两种情况在FF中均不存在。

通过参考 http://ued.alipay.com/?p=322 上的这篇文章,在亲自实践之后,提出解决方案如下:
用UltraEdit打开网页的源代码文件,另存为无BOM格式。如果单独更改header文件不能解决问题的话,建议将所有的源文件统一做此处理。这样就能够在根本上解决这个问题。



原理分析:
问题就出在BOM身上,Unicode规范中有一个BOM的概念。BOM——Byte Order Mark,就是字节序标记。
BOM的说明:在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FEFF在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

很多软件都是通过BOM来识别这个文件是否是UTF-8编码的,可是,还是有很多软件不能识别BOM。如:在Firefox早期的版本里,扩展是不能有 BOM的,不过Firefox 1.5以后的版本已经开始支持BOM了,PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符,所以保存的时候请切换到16进制编码模式下,然后保存文件为无BOM格式。

希望以上所说的能够解决你的问题。。并感谢问题解决方案的最初提出者~~