Вы сказали агенту пользователя, что ваш HTTP-ответ - UTF-8?
header ('Content-type: text/html; charset=utf-8');
Вы также можете убедиться, что ваша HTML-разметка также объявляет кодировку, например,
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Для вашей базы данных настроены ли ваши таблицы и настройки клиента mysql для UTF-8? Если вы проверяете свою базу данных с помощью клиента командной строки mysql, настроена ли ваша терминальная среда на UTF-8?
В двух словах, вы должны проверить каждый шаг: от необработанных исходных данных, кода, к которому они обращаются, систем хранения, которые его сохраняют, и инструментов, которые вы используете для их отображения и отладки.