2009-12-03 2 views
3

Как-то мне удалось вставить Ôªø в начало скрипта PHP. Что это за ужасающая группа персонажей, как я мог войти в нее, и как я могу разоблачить и/или избежать ее в будущем?Что это за строка: Ôªø и как ее избежать?

Anecdotally, он скрывался на самом верху скрипта PHP, до <?php. Сценарий должен был отправить заголовок Content-type. Поскольку Ôªø вытолкнул заголовок с верхней части файла, сервер продолжал отправлять свой собственный заголовок, и наступил 2 часа веселья. Я даже не мог видеть строку в нано или баше. Но я перенаправил diff и вот он.

+1

Что такое шестнадцатеричный дамп первых нескольких байтов файла? ('od -t x1 -N 16 file_name.php') – cobbal

+0

0000000 ef bb bf 3c 3f 70 68 70 0d 0a 09 68 65 61 64 65 – scorxn

ответ

8

Это UTF-8 byte order mark (ищите EF BB BF). Это стандартная вещь и не должно вызывать проблем, но если это так, убедитесь, что ваш редактор исходного кода не добавляет файл с спецификацией при его сохранении.

+1

Это была моя первая мысль. Я предлагаю преобразовать файл в UTF-8 без спецификации и посмотреть, работает ли это. –

+0

«Спецификация UTF-8» не одобрена стандартом Unicode и, таким образом, она используется не более чем в нулевой ширине без разрыва. К сожалению, многие инструменты Microsoft пишут эти фиктивные спецификации перед файлами UTF-8, разбивая их во многих инструментах. – bobince

+0

В качестве последующего вопроса, в котором кодировка \ xEF \ xBB \ xBF выходит в Ôªø? Кажется, он не соответствует любой кодировке, которую я могу найти. –

4

Это, безусловно, ошибка кодирования. Скорее всего, вы сохраняете свой скрипт как один формат, но загружаете его или объявляете его как другой. Я не могу предложить никаких дополнительных советов, потому что я мало знаю об ошибках кодирования или о том, как их исправить. Удачи, раздавив ошибку.

+0

+1 Это может быть боль в трещине. Я видел системы управления версиями, редакторы и разные версии ОС. –

+0

Просто проверил мои локальные архивы и он там, чтобы исключить проблему с загрузкой. Использовал Dreamweaver CS4 Mac для его редактирования, IIRC. По умолчанию используется UTF-8 с окончанием Unix. – scorxn

Смежные вопросы