携子之手,与子偕老

标签:编码格式

UTF-8 BOM可能导致样式错乱的解决方法
技术文档

UTF-8 BOM可能导致样式错乱的解决方法

2011-06-30 2011-06-30 8789浏览 0评论 简洁版

UTF-8 是一种在web应用中经常使用的一种 unicode 字符的编码方式,使用 UTF-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量节约网络带宽。

使用 UTF-8 编码来编写网页的时候, 往往会因为 bom (Byte Order Mark) 的问题,导致网页中经常出现一些不明的空行或者乱码字符。最近在做一个项目的时候, 出现了一个很奇怪的现象就是在火狐、Chrome等浏览器下页面都是正常的,但是在IE下面所有的页面都居左了,而且有些地方显示不太正常。

类似这些可能存在的问题都是因为UTF-8 编码方式对于 bom 不是强制的。因此 UTF-8 编码在保存文件的时候,会出现不同的处理方式。比如有的浏览器(FireFox)可以自动过滤掉所有 UTF-8 bom , 有的 (IE) 只能过滤掉一次 bom (为什么是一次? 当你出现 Include 多次文件时就会碰上这个问题了)。

UTF-8 BOM

UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,而具体的显示效果就要看浏览器了。

阅读更多...