Таблицы MySQL так устроены, что кодировка и сравнение могут быть установлены а) у базы данных 2) у таблиц 3) у полей, при чем все они могут быть разными и если кодировка поля установлена latin, то utf8 у таблицы игнорируется, что может причинить немало беспокойств. Чтобы подружить какую-нибудь систему с кириллицей бывает недостаточно изменить сравнение таблиц, если мудрые разработчики прописали сравнение для каждого поля. Тогда надо юзать функцию CONVERT. Код (PHP): <?php $db = mysql_connect('host','user','pass'); if(!$db) echo "Невозможно подключится к базе данных с указанными данными!"; mysql_select_db('dbase'); $result=mysql_query('show tables'); while($tables = mysql_fetch_array($result)) { foreach ($tables as $key => $value) { mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET 'utf8' COLLATE utf8_general_ci"); }} echo "Сравнение для всех таблиц Вашей БД было успешно изменено.";
Именно так, в свойствах каждого текстового поля будет стоять utf8_general_ci. Добавлено спустя 43 секунды: Содержимое полей кстати тоже сконвертируется в мультибайтовый эквивалент (или в однобайтовый, если наоборот).
А сами записи поменяют кодировку? Дело в том, что я в ручную изменял кодировку на utf8_general_ci а записи как были похожи на иероглифы, так и остались.