Bueno pues depues de mucho probar solo hay una forma de que tod funcione, y es muy raro.
Si dejo el charset de los documentos php en ANSI (iso-8859-1) y la base de datos con el charset utf-8 y cotejamiento utf-8 unicode ci funciona todo perfecto, pero... esto no deberia ser asi, ¿no?
me estoy volviendo loco