Перейти к основному контенту

Что такое BOM символы и как с ними бороться

При создании и редактировании файлов сайта с помощью стандартных программ, редакторы могут автоматически присвоить вашему файлу кодировку UTF-8 с BOM меткой.

BOM (Byte Order Mark) — символ вида U+FEFF, увидеть который можно в самом начале текста.

К чему приводит наличие символа BOM

  • в файлах с расширением php часто высвечивается ошибка:
Warning: Cannot modify header information — headers already sent by (output started at …
  • в файлах с расширением html сбиваются настройки дизайна, сдвигаются блоки, могут появляться нечитаемые наборы символов.

Чтобы исправить это, нужно пересохранить файл с кодировкой UTF-8 без BOM.

Первый способ

  1. 1.
    Откройте файл с помощью редактора Notepad++.
  2. 2.

    Нажмите Кодировки — Кодировать в UTF-8 (без BOM):

    как избавиться от BOM символов

Второй способ

  1. 1.
    Подключитесь к серверу по SSH: Как подключиться по SSH?
  2. 2.

    Выполните команду для проверки всех файлов на наличие в них символов BOM:

    find -type f|while read file;do [ "`head -c3 -- "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done

    Если хотите проверить только определенную директорию, то перейдите в нужный каталог.

  3. 3.

    Если такие файлы есть, запустите следующую команду для удаления символов BOM:

    find . -type f -exec sed 's/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 1 из 1