Seu banco de dados pode ser definido como UTF-8, mas a conexão do banco de dados também precisa ser definida como UTF-8. Você deve fazer isso com um
SET NAMES utf8
demonstração. Você pode usar as driver_options
no PDO para executá-lo assim que você se conectar:$handle = new PDO("mysql:host=localhost;dbname=dbname",
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Dê uma olhada nos dois links a seguir para obter informações mais detalhadas sobre como garantir que todo o seu site use UTF-8 adequadamente: