Je n'utilise pas utf-8, ni sur mes sites, ni dans les tables des bases de données. Ma seule utilisation en est avec PhpMyAdmin pour exporter et importer sous forme de fichier SQL codés en utf-8.
À chaque ouverture de sessions, MySQL renseigne quatre variables système : - Le jeu de caractères que le client utilise en saisie, cette indication est enregistrée dans la variable @@character_set_client. - Le jeu de caractères utilisé pour la communication entre le client et MySQL (@@character_set_connection) : la collation par défaut de ce jeu de caractères détermine la @@collation_connection. - Le jeu de caractères utilisé pour afficher le résultat des requêtes dans le client (@@character_set_results). Le texte de la requête est interprété selon le jeu du client, puis converti dans le jeu de la connexion (@@character_set_connection et @@collation_connection). MySQL envoie ensuite le résultat en utilisant à nouveau le @@characterset_connection, puis en le convertissant ensuite en @@character_set_results.
À mon humble avis, il vous faut vérifier via PhpMyAdmin et onglet Variables quelles sont les valeurs des variables susmentionnées.
Par exemple, pour moi, qui n'utilise pas utf-8 pour mes bases de données mais latin1 (iso-8859-1), voilà les résultats :
character set client utf8 (Valeur globale) latin1 character set connection utf8 (Valeur globale) latin1 character set database latin1 character set filesystem binary character set results utf8 (Valeur globale) latin1 character set server latin1 character set system utf8