Ошибка проверки HTML: символы без пробелов, найденные до DOCTYPE
у меня есть блог(на основе WordPress). И попробуйте проверить валидатором w3c одну из моих страниц. Первая ошибка:
Line 1, Column 1: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>.
<!DOCTYPE html><!-- HTML 5 -->
кроме того, DebugBar (http://www.my-debugbar.com/wiki/IETester/HomePage) согласитесь и покажите два невидимых символа перед <!
когда я открываю ту же страницу с вкладки "проверка HTML" внутри этого инструмента. Но!!
- эта строка HTML-кода происходит из файла заголовок.в PHP в моей теме wordpress.
- я загружаю этот файл с моего хостер для моего локального HDD.
- первая строка заголовок.в PHP is
<!DOCTYPE html><!-- HTML 5 -->
- когда я открываю заголовок.в PHP в RJ TextEd (просто расширенный текстовый редактор) он говорит: текущая кодировка для заголовок.в PHP is UFT-8 без(!) ВЕДОМОСТЬ МАТЕРИАЛОВ.
- когда я открываю заголовка.php в HEX-viewer я вижу, что байт 0 и 1 - это 3c, 21-так что это точно
<!
.
Итак, все рассмотрено, почему и где я получаю это "странные символы" от?
1 ответов
Я нашел корень проблемы. Общее правило:
Если любой(абсолютно любой!) файл, который принимает участие в строительстве код окончательной HTML-страницы (той, которая будет отправлена клиенту) имеет кодировку с BOM-final HTML-страница будет UTF-8-BOM. То есть: вы весь сайт должен!--4-->не содержат даже 1 файл С BOM.
в моем случае у меня есть всего 1.3 K файлов, которые составляют мой сайт. Было только 4 файла BOMed:
- wp-config.php (в корне сайта)
- С помощью jQuery.запрос.js (в папке include)
- - Кир-ко-лат.php (в папке плагина)
- нижний колонтитул.php (в корневой папке темы)
и я был вынужден повторно сохранить все эти 4 файла как "UFT-8 без BOM", чтобы избавиться от ошибки проверки" не-пробелов". Когда я это сделал (повторное сохранение файлов) - ошибка исчезла.