MySql проблемы сортировки utf-8

Столкнулся с проблемой: на локальной машине, все сортируется нормально. А вот как только тестирование начинается на сервере — сортировка русских слов и фраз идёт не верным путем.
Начал разбираться. Хоть таблицы и в 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 и жмем выполнить.

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

PHP: Перекодировка из win1251 в utf-8 (win to utf-8)

win1251_to_utf-8
win_to_utf

function winToUtf8($s){
	// перекодировка из win в utf-8

	static $table= array
	(
		"\xC0"=>"\xD0\x90","\xC1"=>"\xD0\x91","\xC2"=>"\xD0\x92","\xC3"=>"\xD0\x93","\xC4"=>"\xD0\x94",
		"\xC5"=>"\xD0\x95","\xA8"=>"\xD0\x81","\xC6"=>"\xD0\x96","\xC7"=>"\xD0\x97","\xC8"=>"\xD0\x98",
		"\xC9"=>"\xD0\x99","\xCA"=>"\xD0\x9A","\xCB"=>"\xD0\x9B","\xCC"=>"\xD0\x9C","\xCD"=>"\xD0\x9D",
		"\xCE"=>"\xD0\x9E","\xCF"=>"\xD0\x9F","\xD0"=>"\xD0\xA0","\xD1"=>"\xD0\xA1","\xD2"=>"\xD0\xA2",
		"\xD3"=>"\xD0\xA3","\xD4"=>"\xD0\xA4","\xD5"=>"\xD0\xA5","\xD6"=>"\xD0\xA6","\xD7"=>"\xD0\xA7",
		"\xD8"=>"\xD0\xA8","\xD9"=>"\xD0\xA9","\xDA"=>"\xD0\xAA","\xDB"=>"\xD0\xAB","\xDC"=>"\xD0\xAC",
		"\xDD"=>"\xD0\xAD","\xDE"=>"\xD0\xAE","\xDF"=>"\xD0\xAF","\xAF"=>"\xD0\x87","\xB2"=>"\xD0\x86",
		"\xAA"=>"\xD0\x84","\xA1"=>"\xD0\x8E","\xE0"=>"\xD0\xB0","\xE1"=>"\xD0\xB1","\xE2"=>"\xD0\xB2",
		"\xE3"=>"\xD0\xB3","\xE4"=>"\xD0\xB4","\xE5"=>"\xD0\xB5","\xB8"=>"\xD1\x91","\xE6"=>"\xD0\xB6",
		"\xE7"=>"\xD0\xB7","\xE8"=>"\xD0\xB8","\xE9"=>"\xD0\xB9","\xEA"=>"\xD0\xBA","\xEB"=>"\xD0\xBB",
		"\xEC"=>"\xD0\xBC","\xED"=>"\xD0\xBD","\xEE"=>"\xD0\xBE","\xEF"=>"\xD0\xBF","\xF0"=>"\xD1\x80",
		"\xF1"=>"\xD1\x81","\xF2"=>"\xD1\x82","\xF3"=>"\xD1\x83","\xF4"=>"\xD1\x84","\xF5"=>"\xD1\x85",
		"\xF6"=>"\xD1\x86","\xF7"=>"\xD1\x87","\xF8"=>"\xD1\x88","\xF9"=>"\xD1\x89","\xFA"=>"\xD1\x8A",
		"\xFB"=>"\xD1\x8B","\xFC"=>"\xD1\x8C","\xFD"=>"\xD1\x8D","\xFE"=>"\xD1\x8E","\xFF"=>"\xD1\x8F",
		"\xB3"=>"\xD1\x96","\xBF"=>"\xD1\x97","\xBA"=>"\xD1\x94","\xA2"=>"\xD1\x9E","\®"=>"\®"
	);

	return strtr($s, $table);
}