Главная - Без рубрики - Проблемы с кодировкой UTF-8 в WordPress

Проблемы с кодировкой UTF-8 в WordPress

В Сети все больше и больше пользователей, решивших завести свой собственный блог с использованием движка WordPress. Судя по количеству скачиваний бесплатных шаблонов на популярных Интернет –ресурсах русскоязычного сегмента Сети – я не удивляюсь этому.

Соответственно, надо понимать так, что в ряды блоггеров приходят новые члены этого сообщества. И не все знакомы с некоторыми особенностями работы этого движка.

Речь идет о так называемой кодировке UTF-8. Я не буду повторять прописные истины, в Сети много ресурсов, посвященных этим вопросам. Коснусь одной небольшой, но очень болезненной для всех проблемы, с которой, я уверен, сталкивался почти каждый пользователь движка WordPress. Или еще столкнется.

Наверняка, прежде чем устанавливать WP, вы искали документацию по установке. И наверняка ее читали. И наверняка помните, что при установке WP необходимо редактировать файл wp-config.php для внесения в него данных о вашей базе данных (имя базы, имя пользователя, пароль). И в инструкциях по установке вам напоминали, что ни в коем случае нельзя редактировать файлы с расширением PHP обычным блокнотом Windows. Многие из вас даже не знают, почему. Главная причина – блокнот не поддерживает формат UTF-8, точнее сказать, блокнот сохраняет файлы в формате UTF-8, добавляя в начало документа т.н. метки порядка байтов Юникода (англ. Byte Order Mark, BOM).

Также эти метки часто называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Чтобы при сохранении избавиться от добавления сигнатуры, советуют использовать другие текстовые редакторы, например, Notepad++ или более простой Notepad2.

У меня на сайте лежит архив редактора UnicEdit, который очень простой в использовании и сохраняет файлы PHP без сигнатуры. Судя по количеству его скачиваний, он пользуется популярностью. Но.

Скачать редактор UnicEdit

Даже используя этот или другой какой редактор, вы не застрахованы от ситуации, которая случаются иногда. А именно – сохранение файла с сигнатурой BOM.

И знаете, что тогда? А тогда у вас начнутся проблемы.

Например, проблема может быть в том, что ваша Административная панель может не открыться! Вместо нее вы увидите абсолютно белый экран. Или – абсолютно белый, но в левом верхнем углу будет непонятная надпись из трех букв – Япл, или двух цифр – 68. Возможно, есть еще варианты…

Что делать? Во-первых, не надо паниковать и с перепугу сносить файлы движка, плагинов или шаблона.

Во-вторых, дам подсказку. При возникновении подобной проблемы называю диагноз:

Если не грузится Админка — один из ваших файлов (движка, активированного плагина) содержит сигнатуру BOM. Не важно, вы так сохранили, или автор плагина по ошибке сохранил с сигнатурой.

Если не грузится главная страница сайта (белый экран) – сигнатура BOM в одном из файлов активного шаблона.

Как найти этот неправильно сохраненный файл?

Спасибо Юрию Белотицкому, автору небольшого php-скрипта, который легко поможет вам обнаружить ваш “зараженный” сигнатурой BOM php-файл.

Файл find_bom.php надо выложить через FTP в главную директорию вашего движка WordPress. Если WordPress лежит у вас не в главной директории (например, public_html), тогда положите его туда, где лежат шаблоны или плагины. Это ускорит поиск, если у вас хранится очень много файлов на хостинге.

После того, как find_bom.php закачан на сайт, вам надо ввести в адресной строке: www.имясайта.ru/find_bom.php. Через несколько секунд на экране вы увидите, какой файл имеет сигнатуру BOM. После этого вам надо с ним что-то сделать (удалить или заменить).

Скачать скрипт можете у меня.

Будут вопросы — пишите в комментариях.

Информационный партнер — seo-advisor.ru. Советчик по заработку в Интернете. Много полезной информации о создании, продвижении и последующей монетизации сайта. Заработок в интернете. Много полезной информации не бывает. Если эта тема вас интересует, стоит сходить по ссылке и посмотреть хотя бы на заголовки разделов сайта. Возможно, вас заинтересует и вы сохраните сайт в закладках.

О admin

13 комментариев

  1. Ссылка не работает (((
    Обновите плиз

  2. у меня проблема белого экрана сразу при установке wordpress. По инструкции подправил wp-config используя AkelPad 4. При сохранении указывал сохранять без BOM. При попытке запуска install.php просто крутится некоторое время и белый экран после. Система стоит на Win7, Apache 2.2.14, PHP 5.3.1. Попробовал включить вывод ошибок в php, но ничего не поменялось. Так же в логе апаче кроме сообщений об удачной загрузке ничего не появляется. Перерыл кучу сайтов, но решения пока так и не нашел. Может что подскажите?

    • Есть такой хук, файл называется find_bom.php, автор сего творения — ЮБ, поищите в Сети. Этот файлик надо положить в корневую директорию wordpress, и попробовать его запустить через http://ваш сайт/find_bom.php, если он найдет файл с наличием сигнатуры BOM — он вам его укажет на экране. Если ничего не найдет — так и напишет, что ничего не нашел.
      Значит, надо искать в другом месте.
      Вопрос: белый экран появляется при установке WP на удаленном сервере? А на локалке пробовали? Что там получается?
      Еще вариант поиска ошибки: если этот BOM лежит в каком-то плагине, тогда надо пробовать отключить их все и устанавливать без них, ставить WP чистую, без плагинов. Что будет тогда? Если заработает, подключайте по очереди плагины и следите, что получится.

  3. Здравствуйте.
    У меня тоже проблема с кодировкой. Скрипт не помог. Пишет все чисто. Дело в том, что на сайте все работает и русский язык есть. Даже не сразу заметила маленький косячок: перед ссылкой «далее» (в импортном, конечно же шаблоне. но уж очень красивый 🙂 ), которая ставится автоматом, если разделяется целиком слово, то все нормально, а вот если отсекается часть слова — появляются квадратики такие.
    Основная часть файлов, какую видела в ANSI. Базу создала в utf-8. Но русский язык как-то вот есть, а здесь нашла недочетик. Файлы которые отвечают за генерацию превьюшек статей — поправила. Но квадратики не уходят.
    Я не особо в wordpress и даже не знаю где еще можно посмотреть. В Joomla AddDefaultCharset UTF-8 в htaccess решает все, а тут тоже не помог.
    Что можно еще сделать?
    Спасибо.

    • Вы не указали ссылку чтобы посмотреть, но со слов, что я понял — у вас символ «вопрос» появляется в анонсах записи, перед ссылкой «далее». Я кажется знаю, в чем проблема.
      Автор вашей темы использует неправильную функцию для создания отрывка. Что-то типа substring().
      Найдите это слово в файле index.php и замените на mb_substring.
      Желательно перед редактированием сохранить копию файла index.php
      Если проблема решится, значит, надо будет еще найти эту строку в других файлах, а именно — archive.php, search.php, возможно еще category.php и сделать тоже самое.

      • Ссылку не могу приложить — сайт на локалке. Но Вы правы — была такая функция в шаблоне этой страницы substr(….). Поменяла на mb_substr и все исправилось. Спасибо Вам огромное.

  4. Помогите пожалуйста исправить проблему с кодировкой у сайта http://summerinsoul.ru/, отметил на скрине где именно — http://gyazo.com/b99288346612e834250fb019bf9eb814

    У всех .php файлов поменял кодировку на UTF-8 withouto BOM, но не помогло.
    Если включать дефолтную тему вордпресса, то с кодировкой все ок.

    • Я вижу на сайте слово «парам».
      Что исправлять? По-моему, у вас все ОК.
      В записи «Привет, мир!» текст тоже отображается нормально, кириллическим шрифтом.
      Ваш вопрос я не понял.

      • Если оценивать то, что вижу на скрине — у вас проблема не в кодировке, а в работе шрифта в теме, который не имеет кириллических символов.
        Вам надо подобрать в настройках темы правильный шрифт, любой WEB-Font с поддержкой кириллицы.

  5. Доброго дня! Посоветуйте что нибудь…недавно обнаружил свой сайт в поиске googlя с описанием китайскими иероглифами.вы можете проверить это по запросу » замена стеклопакета в Минске»…жалко сайта-продвигал сам первая страница.

    • У вас взломанный сайт.
      Чистить надо от стороннего кода и ссылок.
      Если не умеете и не знаете как, могу помочь.
      Стоимость и сроки могу написать на почту.
      Мой email — ovlasov49 собака gmail.com

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*