Странные символы в PHP

Это сводит меня с ума.

У меня есть один php-файл на тестовом сервере, который не работает.. Я продолжал удалять вещи из него, пока он не стал

<?
print 'Hello';
?>

выводит

ï " Hello Здравствуйте

если я создаю новый файл и копирую / вставляю в него тот же скрипт, он работает! Почему этот файл дает мне странные символы все время?

3 ответов


Это BOM (Знак порядка байтов) вы видите.

в вашем редакторе должен быть способ принудительного сохранения без BOM, который устранит проблему.


найдено, файл - > кодировка - > UTF8 с BOM, изменено на UTF: -)

Я должен был ahve спросил, прежде чем wasing время, пытаясь понять это: -)


на всякий случай, вот список байтов для BOM

Encoding    Representation (hexadecimal)
UTF-8   EF BB BF
UTF-16 (BE) FE FF
UTF-16 (LE) FF FE
UTF-32 (BE) 00 00 FE FF
UTF-32 (LE) FF FE 00 00
UTF-7   2B 2F 76, and one of the following bytes: [ 38 | 39 | 2B | 2F ]†
UTF-1   F7 64 4C
UTF-EBCDIC  DD 73 66 73
SCSU    0E FE FF
BOCU-1  FB EE 28 optionally followed by FF†