24 июня 2008
Исправляем кодировки 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 и выбираем одну из таблиц, где содержатся русские символы. Смотрим в колонку «Сравнение» и видим:
То есть кодировка неправильная (нам нужна utf8_general_ci) и поэтому отмечаем поля с неправильной кодировкой галочками и нажимаем «Изменить».
Предварительно запомнив текущий тип данных, меняем его на BLOB.
А теперь возвращаемся к списку полей, выбираем те же поля и вновь меняем их тип. На сей раз указываем старый тип, длину, но на сей раз в поле «Сравнение» указываем utf8_general_ci.
Напоследок правим 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
Прикольная статья, но хотелось бы поподробнее узнать о некоторых моментах… Как можно с Вами связаться?
Да таков наш современный мир и боюсь с этим ни что нереально поделоть:)
Ага, в данный момент ясно… А то я не слету сообразила где тут связь с назвонием…
Огромное спасибо за статью!
Теперь понятно что делать с этими закорючками!
у меня не получается что-то(..
уже несколько дней мучаюсь.. и никак.. и с базой тоже не получается …
первый клик корректно отображается, второй клик- крокозябры, обновить-снова нормально отображается плагин..
что это может быть??