Столкнулся с проблемой: на локальной машине, все сортируется нормально. А вот как только тестирование начинается на сервере — сортировка русских слов и фраз идёт не верным путем.
Начал разбираться. Хоть таблицы и в utf8_general_ci, но сервер настроен на latin1.
В принципе легко посмотреть с какой стороны подходить, достаточно зайти в базу и посмотреть в читабельном виде наши данные или нет. Если нет — нужно прописывать перекодировку на utf-8 в скрипте, после подключения к бд.
$this->getAdapter()->query("SET NAMES utf8");
$this->getAdapter()->query("SET collation_connection=utf8_general_ci");
$this->getAdapter()->query("SET collation_server=utf8_general_ci");
$this->getAdapter()->query("SET character_set_client=utf8");
$this->getAdapter()->query("SET character_set_connection=utf8");
$this->getAdapter()->query("SET character_set_results=utf8");
$this->getAdapter()->query("SET character_set_server=utf8");
PS: $this->getAdapter()->query = mysql_query.
Для Zend Franework: application.ini
resources.db.params.charset = "utf8" resources.db.params.driver_options.1002 = "SET NAMES utf8"
Но, после этого, на сайте у нас произойдет ужас с кодировкой. И для этого данные в базе нужно из latin1 перекодировать в UTF-8.
Так, а что же делать с данными, которыми у нас наполнен сайт? Не вбивать же всё вручную. Нашел очень удобную панель управления базой — Sypex Dumper. Очень приятно, что разработали это украинские ребята.
Так вот, делаем экспорт с помощью Sypex Dumper, установив в кодировке latin1 и жмем выполнить.

После выполнения качаем бэк-ап и открываем в редакторе. Если все правильно сделали — получим читаемый текст. Дальше, этот бэк-ап восстанавливаем в базу, чтобы все было хорошо с кодировочкой.
