这是我的前两行:
<?php
header('Content-Type: application/x-javascript');
它为我提供了已在第1行发送的标题。
它旨在生成一个从HTML页面加载的JavaScript文件,当从Firebug中检查JavaScript文件时,我得到了以下文件:
1 <br />
2 <b>Warning</b>: Cannot modify header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\totoro\Js\libs.php:1) in <b>C:\Program Files\Apache Group\Apache2\htdocs\totoro\Js\libs.php</b> on line <b>1</b><br />
3 var Totoro = {}, $t = Totoro;
正如您所看到的,它会吐出一个看起来像垃圾字符的字符,但没有任何内容被发送,第一行是header
函数调用。可能是什么问题?
答案 0 :(得分:13)
您很可能将文件保存为带有BOM(字节顺序标记)的UTF-8,将其重新保存为UTF-8而没有说明。
答案 1 :(得分:7)
此字符序列为UTF-8 BOM。使用UTF-8时,请保存没有BOM的文件(有时也称为签名)。
此外,您应该声明您正在使用的编码。因为UTF-8 BOM显示为您命名的字符,所以您的数据可能使用ISO 8859-1进行解释,因为UTF-8 BOM字节序列0xEFBBBF表示字符ï
(0xEF),{{1 ISO 8859-1中的(0xBB)和»
(0xBF)。
因此,请删除BOM并使用此¿
标头字段以及正确的MIME类型Content-Type
和application/javascript
参数:
charset
答案 2 :(得分:0)
我在维基百科上发现了这个: http://en.wikipedia.org/wiki/Byte-order_mark#Representations_of_byte_order_marks_by_encoding
这使我更改了我的Komodo编辑器的首选项,并且选中了“编码:使用签名(BOM)”。一旦取消选中,问题就解决了。