1

我继承了一个庞大的 php 站点。该站点在实时服务器上运行良好,但是我们有一个沙盒/QA 服务器可以在上面进行更改,并且在这个服务器上(几乎可以肯定有不同的 PHP 设置等)我看到在我想要的内容之前输出了一些奇怪的字符.

它们引起了许多问题,到目前为止,我已经通过使用ob_start()ob_clean_end()在 php 脚本的开头,然后在我分别输出内容之前“修复”了它们。

但是,我现在遇到这个问题的次数太多了,以至于我无法继续进行下去。站点更改将于下周上线,沙盒/QA 服务器有可能成为实时服务器。如果发生这种情况,我想确保这个问题不会再次随机弹出。

有谁知道为什么带有 ASCII 码的字符(由ord()239、187 和 191 报告)。

它们似乎是 UTF-8 的字节顺序标记,但我不知道它们为什么在那里或如何防止它们在那里......

4

1 回答 1

1

UTF8 字节顺序标记由一些编辑器放置在 UTF8 编码文件中。它们不是必需的,因此解决问题的最佳方法是从文件中删除所有 BOM。

如果您有很多文件,最好使用脚本来自动化它。您可以在 google 上找到此类脚本的示例,例如这个

于 2013-01-31T16:29:50.987 回答