Кодировка и сравнение таблиц базы данных WordPress
И снова здравствуйте! В современных реалиях веб-разработки правильная настройка кодировки (charset) и сравнения (collation) в базе данных WordPress играет важную роль для обеспечения стабильности и производительности сайта.

Ошибки в кодировке могут привести к неправильному отображению символов, проблемам с поиском и сортировкой контента. В этой статье разберём, как правильно настроить кодировку и сравнение таблиц MySQL для WordPress.
Рекомендованная кодировка и сравнение для WordPress
Начиная с WordPress версии 4.2 по умолчанию используется кодировка UTF-8 с расширенной поддержкой эмодзи и специальных символов. С тех пор оптимальным вариантом для хранения данных является:
- Кодировка (character set, сокращённо — charset):
utf8mb4
- Сравнение (collation):
utf8mb4_unicode_ci
илиutf8mb4_unicode_520_ci
Существует несколько причин, по которым рекомендуется использовать кодировку utf8mb4
, отдельно заострим внимание на следующих:
utf8
в MySQL поддерживает только до 3 байтов на символ, тогда какutf8mb4
— до 4 байтов, что позволяет хранить все юникод-символы, включая эмодзи 😉,utf8mb4_unicode_ci
обеспечивает корректную сортировку и сравнение строк с учётом различных языков,utf8mb4_unicode_520_ci
основано на Unicode 5.2 и более точно обрабатывает некоторые символы.
Если в вашей базе данных используется utf8_general_ci
, рекомендуется выполнить миграцию на utf8mb4_unicode_520_ci
, так как это сравнение более точное и надёжное. При установке WordPress на моём хостинге по умолчанию использовалась кодировка utf8_general_ci
, сегодня я расскажу как правильно конвертировать базу данных в другую кодировку.
Как проверить кодировку и сравнение таблиц WordPress
Чтобы проверить текущую кодировку базы данных, можно использовать SQL-запрос:
SELECT table_name, character_set_name, collation_name
FROM information_schema.tables
WHERE table_schema = 'имя_базы_данных';
Или посмотреть параметры установки через файл wp-config.php:
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', 'utf8mb4_unicode_ci');
Если указанные параметры отсутствуют, MySQL может использовать настройки по умолчанию, которые могут отличаться от рекомендованных выше.
Как изменить charset и collation таблиц WordPress
Обновление всех таблиц с помощью SQL запроса
Используйте следующий SQL запрос в phpMyAdmin для изменения кодировки и сравнения базы данных в целом:
ALTER DATABASE имя_базы_данных CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
Затем обновите все таблицы базы данных. Привожу SQL запрос для изменения кодировки и сравнения на примере таблицы wp_posts:
ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
Обновление через WP-CLI
WordPress CLI позволяет изменить кодировку базы данных командой:
wp db query "ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;"
Если после смены кодировки вы столкнулись с некорректным отображением символов, то проверьте, все ли таблицы базы данных были конвертированы. Также следует убедиться, что файлы .htaccess и wp-config.php правильно настроены и содержат корректную кодировку.
Заключение
Правильная кодировка и сравнение базы данных WordPress критически важны для стабильной работы сайта. Использование utf8mb4_unicode_520_ci
гарантирует лучшую совместимость и поможет избежать проблем с сортировкой и хранением данных. Рекомендую регулярно проверять и обновлять кодировку таблиц для поддержания их актуальности и предотвращения ошибок.