奇怪的扩展ascii /非打印字符由php输出(字节顺序标记?)

时间:2013-01-31 16:25:00

标签: php utf-8 ascii

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

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

但是我现在有一次这个问题太多了,让我感觉不舒服。网站更改将于下周上线,沙盒/ QA服务器有可能成为实时服务器。如果发生这种情况,我想确保此问题不会再次随机弹出。

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

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

1 个答案:

答案 0 :(得分:1)

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

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