Avviso: Questa risposta si applica a PHP 5.3.5 e precedenti. Non usarlo per PHP versione 5.3.6 (rilasciato a marzo 2011) o successive.
Confronta La risposta di Palec qui .
Usa:
$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
Forza UTF-8 sulla connessione PDO. Ha funzionato per me.