Non basta che le tabelle del db abbiano utf8 come charset, deve essere utf8 anche il collation del db stesso, inoltre è necessario che la connessione fatta da PHP verso MySQL sia in utf8, cosa che va specificata con mysql_set_charset('utf8') o equvalente a seconda del sistema che si usa per dialogare col db, subito dopo aver selezionato il database.