PHP-禁用错误报告时的奇怪字符

PHP-禁用错误报告时的奇怪字符,php,Php,这就是我正在做的一切 echo @file_get_contents("http://******.org/ti.php?i=".$i."&s=".$s); 但是,当我从该服务器中删除ti.php文件以测试它是否隐藏了错误时,我在浏览器中得到了以下错误:  那到底是什么(哈哈)?我以前从未见过它,也无法解释它为什么会出现,有什么想法吗? 它是作为iso-8859-1处理的UTF-8空白文档的BOM file_uuget_contents生成一个错误,该错误不会显示,因此这基本上

这就是我正在做的一切

echo @file_get_contents("http://******.org/ti.php?i=".$i."&s=".$s);
但是,当我从该服务器中删除ti.php文件以测试它是否隐藏了错误时,我在浏览器中得到了以下错误:


那到底是什么(哈哈)?我以前从未见过它,也无法解释它为什么会出现,有什么想法吗?

它是作为iso-8859-1处理的UTF-8空白文档的BOM

file_uuget_contents生成一个错误,该错误不会显示,因此这基本上是一个空白的UTF-8文档

如果没有任何字符集信息,浏览器会将其显示为iso-8859-1文档,因为它必须是默认设置。因此BOM表显示为这些奇怪的字符

编辑:


事实上,我复制了你问题的三个字符,将它们粘贴在一个文档中,查看了十六进制代码:EF BB BF,这是UTF-8的BOM。

要了解FWH的答案,请确保您在内容类型标题中使用正确的编码将内容输出到浏览器

最简单的方法就是设置默认字符集

ini_set( 'default_charset', 'UTF-8' );
echo @file_get_contents("http://******.org/ti.php?i=".$i."&s=".$s);

但如果愿意,可以使用显式header()调用。

这可能是服务器返回的吗?如果在不同的域(使用不同的Web服务器)上调用file_get_contents(),会产生类似的结果吗?