¿Has comprobado que la codificación de tu archivo .php está en utf-8? Igual ese es el problema.
Si fuera UTF-8 comprueba la codificación de tus tablas MySQL. Con esta función puedes saber tu codificación actual en la conexión con MySQL:
$mysqli -> character_set_name();
Pero los datos almacenados en MySQL pueden estar en una codificación distinta y no funcionar bien cuando los recibes.