Observação:
utf8 do MySQL charset é limitado, ele suporta apenas caracteres Unicode no BMP que não ocupam mais de três bytes. Você deve estar usando utf8mb4 em vez disso.
- Certifique-se de enviar o
SET NAMES utf8SET NAMES utf8mb4comando para o MySQL após a conexão, antes de executar qualquer consulta do MySQL. - Certifique-se de que sua página seja realmente renderizada como utf-8 (se houver um cabeçalho HTTP
Content-Type: text/html;charset=iso-8859-1, os navegadores discordam sobre qual deve vencer). - Leia este artigo:Como lidar com Unicode de frente para trás em um aplicativo da Web
(mas lembre-se de substituir
utf8comutf8mb4no que diz respeito ao MySQL).
Se o phpMyAdmin exibir seus dados inseridos como texto Unicode correto, minha aposta é que você não está fazendo
SET NAMES utf8 depois de conectar.