PHP文件插入header("Content-type: text/html; charset=utf-8"); 报错

最佳答案:

header("Content-type: text/html; charset=utf-8");
这一句前不能向页面输出任何内容,意思是不能使用echo等语句,也不能输出html标签或文字

如果在header前输出了<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />等标签或文字那肯定会报错

实际上你用了header("Content-type: text/html; charset=utf-8");
这一句的话就不需要用<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />了,同一个道理

以上转自百度:http://zhidao.baidu.com/question/44646627.html&__bd_tkn__=6bb15e2a2a20d1314c08b47fbbac3ab9911f97fe8078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157c58fb369b61abff40491fc7006f320fd23ac978327ee974085fbaf8d749347c07593128bc127b3a3bb3aedeeb0deabbc9da8908c33024ff4e

标题:当php文件为utf-8格式时出现错误"Cannot modify header information - headers already sent by"

解决办法:

php错误"Cannot modify header information - headers already sent by"2008年09月11日 星期四 11:28        出现了这个错误,有时候你发现在前面并没有输出任何东西,那是为什么呢,这都是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的,去掉bom,可以用ultraedit打开一个新文件然后另存为时选择“utf-8 无BOM”即可。
       特别是使用Dreamweaver的用户注意:编辑--首选参数--新建文档--包括unicode签名(bom)这儿不要勾选,不然在php中是无法使用header的,会一直出现该错误:UTF-8 编码的文件可以分为no BOM 和 BOM两种格式。
何谓BOM? "EF BB BF" 这三个字节就叫BOM,BOM的全称叫做"Byte Order Mard".在utf-8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意实在utf16中用来表示高低字节序列的。
在字节流之前有BOM表示采用低字节序列(低字节在前面),而utf8不用考虑字节序列,所以其实有无BOM都可以。

微软的记事本 Word 等只能正确打开含BOM的UTF8文件,然后UltraEdit却恰恰相反,回把BOMutf8文件 误认为ascii编码。

UTF-8的BOM是 EFBBBF,因为UE载入UTF-8文件会转成Utf16,上述的EFBBBF 在Utf16中是FFFE(Unicode-LE的BOM),UltraEdit不认识BOM又加多一個BOM,所以有2个FFFE。
文件就被它破坏了。

转自:http://hi.baidu.com/fegro/item/96ea193e163b5e697c034b94

以下是我个人在解决问题总结的:用记事本另存为index.php 编码格式为 utf-8 点保存。跟着在空白的页面中添加

<php?

header("Content-type: text/html; charset=utf-8");

?>

就这样就成功了!在这代码前不要有任何内容,例如:空格,html标签,文本等!

posted @ 2012-10-16 19:16  stma  阅读(1828)  评论(0)    收藏  举报