Filed under: 程序开发 | No Comments »
Posted on July 31st, 2008 by 李 方进
猫猫举报说奥运竞猜的页面样式有问题,昨天下午开始仔细的检查检查再检查:
1.样式表的问题排除
2.页面编码方式可能导致的问题排除
百思不得其解,这种莫名的问题老实说第一次碰到。
快下班的时候无意中发现我新装的EditPlus3的保存选项中UTF-8标识选的“总是加入签名”,印象中这个选项是“总是删除签名”,于是尝试着把这个选项改掉,然后把奥运竞猜的程序全部重新另存一遍上传到服务器——OK,页面样式对了。

问题是解决了,但是为何这个“签名”会导致这种问题?万能的Google告诉我:
utf-8 是一种在web应用中经常使用的一种 unicode 字符的编码方式,使用 utf-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量节约网络带宽。使用 utf-8 编码来编写网页的时候, 往往会因为 bom (Byte Order Mark) 的问题,导致网页中经常出现一些不明的空行或者乱码字符。 这些都是因为 utf-8 编码方式对于 bom 不是强制的。因此 utf-8 编码在保存文件的时候,会出现不同的处理方式。比如有的浏览器(FireFox)可以自动过滤掉所有 utf-8 bom , 有的 (IE) 只能过滤掉一次 bom (为什么是一次? 当你出现 Include 多次文件时就会碰上这个问题了)。
对此 w3.org 标准 FAQ 中对此问题有一个专门的描述: http://www.w3.org/International/questions/qa-utf8-bom