Are you sure the database is UTF-8 and not Latin-1 with UTF-8 in it. MySql isn't that fussy and doesn't raise errors. Everything looks okay on the outside, just all the database string functions etc possibly misbehave.
If it is UTF-8 try
$set_connection_encodings = array(
'character_set_client=utf8'
,'character_set_connection=utf8'
,'character_set_results=utf8'
,'collation_connection=utf8_general_ci'
,'collation_database=utf8_general_ci'
);
foreach( $set_connection_encodings AS $set_connection_encoding )
{
$sql = 'SET ' . $set_connection_encoding;
query_call( $sql );
}
After connection