Главная Программы

WordPress и кодировка файлов UTF-8 без BOM

Мне очень часто приходится своим клиентам объяснять нижеизложенную популярную проблему с кодировкой UTF-8, поэтому я написал данную статью, чтобы впредь отправлять их сюда.

Многие владельцы сайтов, в частности работающих на блоговом движке WordPress, редактируют PHP-файлы в блокноте, который прилагается к ОС Windows.

Поскольку сам движок WordPress работает с кодировкой UTF-8, а файлы шаблона, как правило, содержат русские буквы, т.е. кириллицу, то для правильного ее отображения такие файлы также необходимо сохранять в кодировке UTF-8.

Однако блокнот Windows при сохранении в кодировке UTF-8 добавляет в PHP-файлы невидимые символы, называемые BOM (кстати говоря, невидимые они именно в блокноте Винды), которые в результате приводят к тому, что либо на сайте отображается какая-то PHP-ошибка, либо “съезжает” дизайн.

Поэтому решение проблемы очень простое – при работе с кодировкой UTF-8 необходимо вообще забыть, что существует блокнот Windows и вместо него использовать нормальный текстовый редактор, который прекрасно умеет это делать. Например, Notepad++.

После установки Notepad++ откройте в нем целевой PHP-файл и меню выберите “Кодировки -> Кодировать в UTF-8 (без BOM)“:

Кодировать в UTF-8 (без BOM)

После этого сохраните файл и загрузите его на свой сайт через FTP.

Если вы не знаете, какой из файлов сохранен в неправильной UTF-8 кодировке, то воспользуйтесь специальным скриптом, который найдет все файлы с BOM, которые необходимо пересохранить вышеописанным способом.

Все, на этом задачу с кодировкой можно считать решенной.

P.S. По большому счету, вышеизложенная информация применительна вообще к любым текстовым файлам, а не только к файлам WordPress, но, поскольку я преимущественно работаю с WordPress, то изложил материал в контексте данного движка.

* * *

Для желающих бросить курить в интернет-гипермаркете DigBox.ru осуществляется продажа электронных сигарет – инновационное устройство, имитирующее табакокурение и использующее технологию никотинозаместительной терапии. Позволяет эффективно избавиться от никотиновой зависимости.

Комментарии (25)

  1. Помню сам долго парился с такой проблемой, не мог понять почем модули сьезжают вниз, хотя в html с виду все чисто

  2. у меня для быстрого редактрирования на ftp настроен akelpad, нормально там управление кодировками сделано
    а курьезы конечно были. сложно было как то под убунтой искать левые символы после верстки на винде

  3. С Notepad++ Бывают такие проблемы, что выполнишь перекодировку и сохранишь, а в браузере все равно “кракозябры”. Тут приходится переименовывать файл в txt Открывать его в своем любимом ворде и сохранять его как новый файл txt. Вот тогда уже все гуд

  4. А вообще я считаю что в нормальных редакторах кода такая функция должна быть обязательно. В большинстве есть.

  5. Я тоже горя хапнул с этими бомами и в свое время несколько статей написал по этому поводу на Белой Шляпе. Не помню чей это код, но он загружается в корень сайта и ищет файлы с БОМ, это очень удобно. Периодически я пользуюсь этим скриптом и время от времени он вылавливает неправильные файлы.

  6. “необходимо вообще забыть, что существует блокнот Windows” – золотые слова :) а лучше и об Windows забить ;)

  7. я бы еще посоветовал дополнить пост и описать что же такое BOM вообще.
    когда столкнулся, так и искал – “что такое BOM”

  8. Известная проблема. Я все файлы редактирую в Dreamweaver’e. Во-первых, он сам ни за что ВОМ-метки не поставит, если файл изначально без них. Во-вторых, очень легко перекодирует, в случает подобных проблем.

  9. Это проблемка на первом этапе наверное у всех была кто с вордпрессом работал

  10. Я сам некоторое время назад задавался этим же вопросом. Только у меня проблема с кодировкой была применительно к сайту на Друпале. Решил тем же самым способом с Notepad++ (удобная прога, хотя конечно системных ресурсов требует как 5 блокнотов винды ;) – на старых машинках с кучей одновременных процессов будет тормозить…

  11. Известная проблема. Я все файлы редактирую в Dreamweaver’e.

  12. Спасибо огромное за такое подробное описание проблемы! Написано специально “для тех, кто с трудом понимает” и это здорово!
    Я полдня мучалась с WP пока не нашла это простое решение!

  13. Спасибо за совет, а то день промучился в поисках проблемы…

  14. Блин, четыре дня искал ошибку. Была строка белая в хедере WordPress. Никак не мог избавиться, большое спасибо!

  15. Коллеги, проблема в следующем: в странице wordpress написал код, который добавляет запись в таблицу базу данных, на самой странице текст отображается русскими буквами, а в БД добавляется в “виде кракозябр”(сам файл в кодировке utf-8). Подскажите как исправить?

  16. Здравствуйте!
    А не подскажете в чем может быть проблема. Перенес сайт с одного хостинга на другой. В результате комментарии отображаются кракозябрами. Стоит плагин AJAX комментариев, поэтому они добавляются без перезагрузки страницы. Так вот если перезагрузить страницу, то комментарии уже будут в нормальной кодировке.

    Подобный косяк встречал и на других блогах, теперь вот сам столкнулся…

  17. Здравствуйте, у меня возникла проблема, не могу войти в админку, выдает ошибку:

    Warning: Cannot modify header information – headers already sent by (output started at /home/countrys/public_html/wp-content/themes/interiorset5/functions.php:13) in /home/countrys/public_html/wp-includes/pluggable.php on line 881

  18. Здравствуйте. Не знаете, может ли не отображаться реклама из-за того что в их коде присутствует w-1251? Ну а сайт естественно в UTF-8.

  19. привет народ! у меня не работает кодировка utf 8 без ВОМ. Сохраняю документ в нотепад++, и все равно символы отображаются неверно. с чем это может быть связано?

  20. Заметил еще интересную особенность – через оперу отображается отлично, а вот через мазилу одни каракули.