Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

UTF8/BOM/headers already sent 必看!

Posted on 2008-09-18 23:27  analyzer  阅读(500)  评论(0编辑  收藏  举报
什么是 BOM
UTF-8以 字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如收到一个 “奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是 “奎”还是“乙”?Unicode规范中推荐的标记字节顺序的方法是BOM。BOM不是“Bill Of Material”的BOM表,而是Byte Order Mark。

进一步阅读:http://zhidao.baidu.com/question/15626866.html


如果文件保存时,选择了使用 BOM,那么就可能会出现 headers already sent 的问题。
因为 Web 服务器软件可能不认识 BOM,所以就把 BOM 的两个特殊字节当做字符发送给浏览器了。

这时再调用 session_start() 等函数,就会出现 headers already sent 的问题。

所以解决此问题最根本的方法就是在保存 UTF8 编码文件时,不要使用 BOM。

常用编辑器的设置方法:

 


 

 

我要啦免费统计