Upozornění: Tato odpověď platí pro PHP 5.3.5 a nižší. Nepoužívejte jej pro PHP verze 5.3.6 (vydaná v březnu 2011) nebo novější.
Porovnejte s Palecovou odpovědí zde .
Použijte:
$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
Vynutí UTF-8 na připojení PDO. Fungovalo to pro mě.