Что означает "" в начале моего исходного файла?

У меня есть исходный файл PHP, в который автоматически добавляются символы ""! Я не знаю, откуда они пришли. Я не получаю никаких ошибок синтаксического анализа, но это приводит к странному поведению при выполнении файла. Например, функция определения местоположения заголовка иногда не работает! Мне интересно, как эти виды символов генерируются автоматически? Я использую кодировку UTF-8 и знак "" "отображается не в Notepad++ или Windows Notepad, а в IDE Netbeans.

Например. Код:

<?php
echo "no errors!";
header("Location: http://stackru.com");
exit;
?>

Что это? Как я могу предотвратить это?

4 ответа

Решение

Вы вероятно сохраните файлы как UTF-8 с BOM. Вы должны сохранить их как UTF-8 без спецификации.

Он называется Byte Order Mark, и не всегда должен быть "ï" ¿. http://en.wikipedia.org/wiki/Byte_order_mark

Некоторые приложения Windows по умолчанию добавляют спецификацию. В Notepad++ вы можете использовать некоторые параметры в меню "Кодирование", например, "Кодировать в UTF без спецификации" или "Преобразовать в UTF без спецификации".

Я верю, что независимо от того, сохраните ли вы его в формате UTF-8 с или без спецификации, это все же произойдет. Я не думаю, что это имеет значение.

Попробуйте, посмотрите, поможет ли это.

Из такого инструмента, как vi или vim, вы можете изменить и сохранить файл без спецификации с помощью двух следующих команд:

:setlocal nobomb

а потом

:w

Если вы используете Firefox, символы будут отображаться в вашей "вставке". Если вы переключитесь на Chrome, то символы не появятся.

Другие вопросы по тегам