Was ich oft als Problemlöser finde, ist:
mysql_query("SET NAMES 'utf8'");
Bevor Abfragen durchgeführt werden.
Die Dokumentation empfiehlt die Verwendung von mysql_set_charset
aber ich sehe oft, dass diese Funktion fehlt.
if( function_exists('mysql_set_charset') ){
mysql_set_charset('utf8', $db_con);
}else{
mysql_query("SET NAMES 'utf8'", $db_con);
}