Ежовый угол

Avatar

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

Исправляем кодировки 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



RSS Feed | Trackback URI

Комментариев: 4 »


+ Comment by Goniesofs
Воскресенье, 10 мая 2009 @ 03:52

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

 
Четверг, 19 ноября 2009 @ 06:16

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

 

+ Comment by Авроров
Четверг, 19 ноября 2009 @ 18:44

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

 

+ Comment by kuchka
Четверг, 4 февраля 2010 @ 17:05

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

 

Or use your OpenID:

Поиск по сайту