Se você esta usando PDO, esta tendo dificuldades com UTF-8 no seu MySQL, mesmo com tudo setado para UTF-8, você pode tentar isso:
$pdo = new PDO(
‘mysql:host=localhost;dbname=nomedobanco’,
"user",
"pass",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
O último parametro do construtor do PDO é um array com as opções específicas do driver, no caso, do driver od MySQL. Este parametro é alimentado no velho estilo "array" chave=>valor.
Observem que o parametro (PDO::MYSQL_ATTR_INIT_COMMAND) não se trata de uma configuração de charset, mas sim de um comando que é executado todas as vezes que você conecta no banco. Neste caso, todas as vezes que ele se conecta no banco, ele executa a query "SET NAMES utf8" (acho que é específica do MySQL) que diz para o MySQL utilizar UTF-8 como charset para nossa conexão.
Para saber mais:
- PDO e BEAN no PHP
- MySQL “Connection Character Sets and Collation” documentation
- PDO constructor documentation
- PDO MySQL driver documentation
Fonte:
http://www.laszlo.nu/post/34159352/how-to-use-utf-8-with-mysql-and-php-data-objects-pdo
Tags BlogBlogs: php, pdo, mysql, utf8, unicode


















O seu post resulveu meu problema. Obrigado.
Parabéns, fiquei a manhã inteira tentando resolver o problema. E só consegui graças ao seu post.
Deus te abençoe meu velho, ajudo no meu problemas aqui…
Maravilha!!! Um post de 2008 me ajudou MUUUITO!!! Obrigado Cristian.