Ci sono più punti di errore, quando si lavora con UTF8:
-
assicurati che la tabella sia utf8
Usa il comando SQL
Show Variables;
per controllare le impostazioni dei caratteri MySQL per la tabella. -
i dati inseriti sono utf8
Potresti provare strumenti come phpMyAdminer o Amministratore per verificare se i
dati sono inseriti correttamente. Prova a inserire manualmente i dati tramite lo strumento. Quando inserisci tramite script, non utilizzare le funzioni di base delle stringhe. Usa sempre le loro mbstringalternative. Impostamb_internal_encoding( 'UTF-8' );
per consentire a PHP di gestire internamente UTF-8. -
i dati recuperati sono utf8
Userei solo
$pdo->exec("SET NAMES utf8");
e lascia perdere il resto. PerchéSET NAMES x
è equivalente aSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;
-
i dati visualizzati sono utf8
Se viene visualizzato in una pagina html, non dimenticare di impostare il meta tag o l'intestazione
"Content-Type: text/html; charset=utf-8"
.