To, co często znajduję, rozwiązuje wiele problemów;
mysql_query("SET NAMES 'utf8'");
Przed wykonaniem jakichkolwiek zapytań.
Dokumentacja zaleca użycie mysql_set_charset
ale często widzę, że brakuje tej funkcji.
if( function_exists('mysql_set_charset') ){
mysql_set_charset('utf8', $db_con);
}else{
mysql_query("SET NAMES 'utf8'", $db_con);
}