Ежовый угол

Сеть, Рунет, телеком, Иркутск

Исправляем кодировки WordPress

Если в вашем wp-config.php есть строка

define(‘MAXSITE_DB_CONVERT’, true); # true — разрешить, false — запретить

то вам стоит прочитать статью до конца. Ваш блог на лету конвертирует данные из БД, что не очень хорошо — попросту работа с базой wordpress в phpmyadmin невыносима, русские символы принимают вид:

Сегодня был первый снег. Р’РµС..

А порой могут проявляться проблемы с кодировкой — к примеру, часть комментариев выводится корректно, а часть — абракадаброй. Я рекомендую вам последовать моему совету и перевести БД на UTF8. В будущем это позволит вам избавиться от огромного количества головной боли. Как это сделать — см. ниже.

Технология

Технология проста. У нас есть данные в кодировке latin1 (официальная сборка wp) или cp1251_general_ci (сборка от maxsite и пр.) и их надо перевести в utf8_general_ci. Если сразу менять кодировку — будут теряться данные. Поэтому в качестве промежуточного формата хранения данных мы будем использовать BLOB, т.е. двоичный формат. Благодаря нему мы никакие данные не потеряем и все корректно сконвертируется.

Приступим…

Заходим в phpmyadmin и выбираем одну из таблиц, где содержатся русские символы. Смотрим в колонку «Сравнение» и видим:

wp_utf_1.gif

То есть кодировка неправильная (нам нужна utf8_general_ci) и поэтому отмечаем поля с неправильной кодировкой галочками и нажимаем «Изменить».

wp_utf_2.gif

Предварительно запомнив текущий тип данных, меняем его на BLOB.

wp_utf_3.gif

А теперь возвращаемся к списку полей, выбираем те же поля и вновь меняем их тип. На сей раз указываем старый тип, длину, но на сей раз в поле «Сравнение» указываем utf8_general_ci.

wp_utf_4.gif

Напоследок правим wp-config.php, указывая теперь запрет смены кодировки

define(‘MAXSITE_DB_CONVERT’, false); # true — разрешить, false — запретить

и, соответственно, корректный список кодировок

define(‘DB_CHARSET’, ‘utf8’); # кодировка базы данных: utf8 или cp1251
define(‘DB_COLLATE’, ‘utf8_general_ci’); # кодировка, в которой хранятся данные: utf8_general_ci или cp1251_general_ci

Раздел: Без рубрики

Метки:

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

  1. Прикольная статья, но хотелось бы поподробнее узнать о некоторых моментах… Как можно с Вами связаться?

  2. Да таков наш современный мир и боюсь с этим ни что нереально поделоть:)

  3. Ага, в данный момент ясно… А то я не слету сообразила где тут связь с назвонием…

  4. Огромное спасибо за статью!
    Теперь понятно что делать с этими закорючками!

  5. у меня не получается что-то(..
    уже несколько дней мучаюсь.. и никак.. и с базой тоже не получается …
    первый клик корректно отображается, второй клик- крокозябры, обновить-снова нормально отображается плагин..
    что это может быть??


Оставить комментарий для neosh × Отмена

Реклама

Статистика