Предупреждение: Този отговор важи за PHP 5.3.5 и по-стари. Не го използвайте за PHP версия 5.3.6 (издадена през март 2011 г.) или по-нова.
Сравнете с отговора на Palec тук .
Използвайте:
$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
Принуждава UTF-8 към PDO връзката. При мен проработи.