Il existe plusieurs points de défaillance lorsque vous travaillez avec UTF8 :
-
assurez-vous que la table est en utf8
Utilisez la commande SQL
Show Variables;
pour vérifier les paramètres de caractères MySQL pour la table. -
les données insérées sont en utf8
Vous pouvez essayer des outils comme phpMyAdminer ou Administrateur pour vérifier si les
données sont insérées correctement. Essayez d'insérer manuellement les données via l'outil. Lors de l'insertion via un script, n'utilisez pas les fonctions de chaîne de base. Utilisez toujours leurs alternatives mbstring. Définirmb_internal_encoding( 'UTF-8' );
pour laisser PHP gérer UTF-8 en interne. -
les données récupérées sont en utf8
Je n'utiliserais que
$pdo->exec("SET NAMES utf8");
et laissez tomber le reste. Parce queSET NAMES x
est équivalent àSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;
-
les données affichées sont en utf8
Si cela s'affiche dans une page html, n'oubliez pas de définir la balise meta ou l'en-tête
"Content-Type: text/html; charset=utf-8"
.