No se si te servirá pero a mi me paso en un proyecto lo mismo, tenia base en utf8, campos en utf8 , html utf8 todo en utf8 y a aun así me seguían apareciendo caracteres extraños..
La solución fue hacer inmediatamente después de la conexión :
Y se soluciono...
Saludos y espero te sea de utilidad