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

13 мая 2010 г.

Мне очень часто приходится своим клиентам объяснять нижеизложенную популярную проблему с кодировкой 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)“:

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

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

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

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

* * *

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

Теги: , , , автор: Dimox | рубрика Программы

Комментарии (20): »

  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. чувак, я те за это в морду дам…
    твой макинтош или убунта, на хрен не кому не нужна для дома…

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

  14. Стоит акелпад и блокнот - в акелпаде удобно составлять ТЗ (потому что можно сниппеты делать), но печатать… это жесть.

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

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

  17. Четыре дня - это очень много для поиска решения подобной проблемы =)

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

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

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

    @
  20. Возможно, причина в самом плагине.

Присоединяйтесь к обсуждению!

Отправляя кoммeнтapий, вы автоматически принимаете правила кoммeнтиpoвaния на этом блоге.

Правила кoммeнтиpoвaния на блоге dimox.name:

  1. Первый кoммeнтapий всегда проходит премодерацию.
  2. В поле "URL блога" можно указывать только ссылку на главную страницу вашего блога. Ссылки на прочие веб-ресурсы (в том числе блоги/сплоги, созданные не для людей) будут удалены.
  3. Запрещается использовать в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова. В случае несоблюдения этого условия имя изменяется по усмотрению владельца блога. Просьба указывать нормальное имя или ник.
  4. Весьма вероятно, что короткий и неинформативный кoммeнтapий вида "Спасибо!", "Интересная статья", будет удален. Исключение составляют знакомые автору блога комментаторы.
  5. Комментарии не по теме удаляются.

Подписаться, не комментируя
  • Похожие статьи
  • Предыдущие из рубрики