5
BOM кроссбраузерности не друг
При создании сайта uvcenter.ru возникла проблема кроссбраузерности.
В Google Chrome и Firefox всё отображалось как надо, но в Опере и IE дела обстояли плохо – некоторые блоки отказывались стоять на своих местах и убегали кто куда.
Проверив код на валидность c помощью validator.w3.org, я особое внимание обратил на ошибку
Line 1, Column 0: character “....” not allowed in prolog.
Валидатор подсказал, где собака порылась:
Byte-Order Mark found in UTF-8 File.
The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.
Что в переводе с буржуйского означает, что в коде найден идентификатор утф-кодировки Unicode Signature (BOM — Byte-Order Mark).
А это как известно, вызывает проблемы в некоторых текстовых редакторах и старых браузерах.
Оказывается, когда сохраняешь документ в UTF-8 через обычный блокнот, в начало дописывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. Byte Order Mark, BOM), который позволяет определить формат представления Юникода в текстовом файле. На него-то и ругается валидатор.
Решение проблемы:
1 способ. Использовать программу UTF8-bom-remover (скачать).
Открываем её, выбираем директорию со скриптами, устанавливаем тип файлов, по которым будет выполнятся поиск и жмём на «Обработать».
Снизу будет написано сколько файлов проверено и сколько поправлено.
Если интересно какие файлы были исправлены, до обработки ставим галку в «отчет», который сохраняется в папке поиска.
2 способ. Выковырять эту BOM-загогулину из файла с помощью Notepad++ (скачать|портабельная версия)
Открываем в нём файл, выбираем «Format»->»Encode in UTF-8 without BOM» («Кодировка» -> «Кодировать в UTF-8 без BOM») и пересохраняем.
После исправления скриптов моя проблема была решена.
Связанные записи
Комментировать
Метки
Мои проекты
2 weeks ago
3 weeks ago

Спасибо!Всю голову сломал,как сделать верстку валидной!)
А у меня не выходит. Делала по второму способу… как было 7 ошибок так и осталось….
Именно таких ошибок:
Line 1, Column 0: character “….” not allowed in prolog. ?
[...] Если случилось так, что невозможно зайти в админ-панель Джумлы, хотя логин и пароль верны — страница входа просто перезагружается и не выдает никаких ошибок, то скорее всего какие-то скрипты были отредактированы в простом блокноте и сохранены в кодировке «UTF», а не в «UTF без BOM». Решение этой проблемы подробно расписано в статье BOM кроссбраузерности не друг. [...]
Спасибо! Очень помогло!
А у меня с BOM валидацию проходило, а без него нет
. Так что с ним у меня выдает предупреждение, но зато валидация отличная.