Частенько при установке wordpress, особенно на зарубежных хостингах, приходиться исправлять кодировку сайта, залезая в дебри баз данных — MySQL.
Как не вспомнить здесь старую шутку пользователей из СНГ. Так один юзер говорит другому, что он ненавидит американцев только за то, что ему приходится переключать клавиатуру, а тем не надо!
Однако сейчас пойдёт речь о выборе в базе данных MySQL таблицы utf8_general_ci или utf8_unicode_ci. Обращаю внимание новичков на разницу в середине названий таблицы _general_ и _unicode_ . Внимательность, ограничит Ваши случайные ошибки! Какую же таблицу нам предпочесть при использовании UTF?
utf8_general_ci
Данная таблица убирает все имеющиеся акценты и приводит их к верхнему регистру типа ÀÁÅåāă = A, ü = U. А это не очень точно отрабатывается при сортировках данных. Впрочем данный вариант иногда полезен при поиске, так как он быстрее utf8_unicode_ci. Хорошо подходит для Русской кодировки, но при использовании Белорусского и Украинского сортировка будет недостаточно верной.
utf8_unicode_ci
Данная таблица довольно правильно и точно работает при сортировке и поиске данных. Например, ? (немецкий эсцет) будет при сортировке, как ему и положено, располагаться рядом с ss. Как отмечалось выше, это вариант медленнее utf8_general_ci. Однако этот выбор наиболее полно отражает элементы Русского, Белорусского и Украинского языков.
Поэтому как вывод, подытожу, что если проект исключительно русскоязычный, а скорость поиска и сравнения критична, то необходимо остановится на utf8_general_ci. Если же ваш проект мультиязычен и необходима поддержка большого количества языков, то лучше остановиться на utf8_unicode_ci.