PHP - странные символы при отключении отчетов об ошибках - PullRequest
0 голосов
/ 17 июля 2009

Это в основном все, что я делаю

echo @file_get_contents("http://******.org/ti.php?i=".$i."&s=".$s);

Но когда я удаляю файл ti.php с этого сервера, чтобы проверить, скрывает ли он ошибку, я получаю это в своем браузере, где ошибка будет:



Что, черт возьми, это (смеется)? Я никогда не видел этого раньше и не могу придумать объяснения, почему оно появилось, какие-либо идеи?

Ответы [ 2 ]

10 голосов
/ 17 июля 2009

http://en.wikipedia.org/wiki/Byte-order_mark

Это спецификация бланка документа UTF-8, обработанного как iso-8859-1.

file_ get_contents генерирует ошибку, которая не отображается, так что это в основном пустой документ UTF-8.

Без информации о кодировке, браузер отображает его как документ iso-8859-1, так как он должен быть настройкой по умолчанию. Таким образом, спецификация выглядит как эти странные символы.

EDIT:

Действительно, я скопировал три символа вашего вопроса, вставил их в документ, посмотрел на шестнадцатеричные коды: EF BB BF, которая является спецификацией UTF-8.

1 голос
/ 17 июля 2009

Чтобы добавить ответ FWH, убедитесь, что вы выводите контент в браузер с правильной кодировкой в ​​заголовке типа контента.

Самый простой способ сделать это - установить кодировку по умолчанию

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

Но вы можете использовать явный вызов header (), если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...