php输出开头的垃圾字符

时间:2013-05-28 08:26:17

标签: php apache

我遇到了一个回复一些简单文字的脚本。

应输出:

M9785000 
PRE4371

但实际上是输出

M9785000 
PRE4371

响应标头是:

Accept-Ranges   bytes
Connection  close
Content-Type    text/html
Date    Tue, 28 May 2013 08:15:48 GMT
Server  Apache
X-Powered-By    PHP/5.2.17

它之前已被分块,但我降级了输出,所以它没有分块,但这对于回声字符的干净输出没有帮助。

可能是什么问题,我该如何解决?

2 个答案:

答案 0 :(得分:3)

您的问题是字节订单标记(BOM)

在这里阅读更多相关信息: http://www.w3.org/International/questions/qa-byte-order-mark.en.php

这可能是以下内容的重复:How do I remove  from the beginning of a file?

答案 1 :(得分:1)

您的文件中有字节订单标记(BOM)字符。它用于UTF-8编码,当转换为ISO-8859-1编码时会导致显示。

如果你有notepad ++,你可以使用内置选项。转到菜单>编码>无需BOM即可转换为UTF-8。这是一个很棒的编辑器,我用它。

如果你喜欢vim,你可以这样做:

vim file
:set nobomb
:wq