Varning: Detta svar gäller för PHP 5.3.5 och lägre. Använd den inte för PHP version 5.3.6 (släpptes i mars 2011) eller senare.
Jämför med Palecs svar här .
Använd:
$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
Det tvingar UTF-8 på PDO-anslutningen. Det fungerade för mig.