« Prototype 文档 | Blog首页 |
2006/05/11
utf-8 保存文件的 bom 问题
大家都知道 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
在此个人认为对于这个问题最好的处理方式就是在编辑(保存)文件的时候统一去除 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 支持比较好,推荐大家使用。
阿涂
发表于
2006-05-11 10:42
阅读(2889)
评论(
4)
引用(
5)
字符编码
所有人可见
相关内容
回复列表每两分钟自动刷新一次,想立即刷新吗?点击这里







