PHP文件中的BOM赢得';无法使用zend.multibyte进行处理

PHP文件中的BOM赢得';无法使用zend.multibyte进行处理,php,utf-8,Php,Utf 8,我最喜欢的PHP编辑器Codelobster总是在我的PHP文件中添加UTF-8 BOM 所以这个BOM表被发送到客户机。尽管谷歌浏览器在大多数浏览器上都能正常工作,但谷歌浏览器却有一个问题:据inspector称,它添加了插入HTML的,导致后续上方出现难看的填充 我想通过从HTTP输出中剥离UTF-8来解决这个问题 我已经读到,PHP.ini中的设置zend.multibyte=On将处理PHP文件的UTF-8 BOM,因此避免将它们传递给客户端 但它不起作用。我该怎么办 r

我最喜欢的PHP编辑器Codelobster总是在我的PHP文件中添加UTF-8 BOM

所以这个BOM表被发送到客户机。尽管谷歌浏览器在大多数浏览器上都能正常工作,但谷歌浏览器却有一个问题:据inspector称,它添加了
插入HTML的
,导致后续
上方出现难看的填充

我想通过从HTTP输出中剥离UTF-8来解决这个问题

我已经读到,PHP.ini中的设置
zend.multibyte=On
将处理PHP文件的UTF-8 BOM,因此避免将它们传递给客户端

但它不起作用。我该怎么办

reproduction.php(ASCII表示)

ï»
有关环境的其他信息:

  • PHP 5.6.8
  • SAPI:Apache2.0处理程序
  • Apache 2.4.10
  • Windows服务器

最终,您应该让编辑器根据需要保存文件,而不需要复杂的解决方法。@deceze我个人并不认为bom是一件坏事。如果没有UTF-8,我就不能用英语以外的语言对代码进行注释。当然有一个设置可以将文件保存为UTF-8而不使用BOM?您可以在记事本++中完成它。。。您已经发现,使用
标题(…)
调用时,BOM是一件坏事。如果没有BOM,您可以非常好地使用UTF-8。对于UTF-8,BOM完全是可选的,并且大部分是非功能性的。
<?php

// Just a demonstration to show that the UTF-8 BOM was actually sent
flush();
header('abc:def'); // will fail, because of the previously sent BOM

// Now check that the change in the PHP file did work.
var_dump(ini_get('zend.multibyte')); // string(1) "1"

?>