Чтобы заставить его работать, вы должны использовать SET NAMES
после того, как откроете соединение и выберите базу данных, чтобы сообщить mysql, что клиент будет использовать определенный набор символов для отправки данных.Проверьте здесь для деталей.Для вашего конкретного случая это должно быть
SET NAMES utf8
Кроме того, я бы использовал utf8_unicode_ci вместо utf8_general_ci.Это правда, что utf8_unicode_ci медленнее, чем utf8_general_ci, но вы получите лучшее сравнение (более точное) ... utf8_general_ci подходит только для русского и болгарского подмножества кириллицы.Дополнительные буквы, используемые в белорусском , македонском , сербском и украинском , не отсортированы должным образом ... вы должны иметь это в виду, еслиВы будете использовать некоторые буквы из этих кириллических алфавитов.