Existem vários pontos de falha, ao trabalhar com UTF8:
-
verifique se a tabela é utf8
Use o comando SQLShow Variables;
para verificar as configurações de caracteres MySQL para a tabela.
-
os dados inseridos são utf8
Você pode tentar ferramentas como phpMyAdminer ou Administrador para verificar se os
dados estão inseridos corretamente. Tente inserir dados através da ferramenta manualmente. Ao inserir via script, não use funções básicas de string. Sempre use suas alternativas mbstring. Definamb_internal_encoding( 'UTF-8' );
para deixar o PHP lidar com UTF-8 internamente.
-
os dados buscados são utf8
Eu usaria apenas$pdo->exec("SET NAMES utf8");
e solte o resto. PorqueSET NAMES x
é equivalente aSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;
-
os dados exibidos são utf8
Se isso for exibido em uma página html, não se esqueça de definir a meta tag ou o cabeçalho"Content-Type: text/html; charset=utf-8"
.