Eh bien, j'ai trouvé que SET NAMES
n'est pas vraiment génial. Jetez un œil à la documentation
...
Ce que je fais généralement, c'est exécuter 4 requêtes :
SET CHARACTER SET 'UTF8';
SET character_set_database = 'UTF8';
SET character_set_connection = 'UTF8';
SET character_set_server = 'UTF8';
Essayez-le et voyez si cela vous convient...
Oh, et rappelez-vous, tous les caractères UTF-8 <=127 sont également des caractères ISO-8859-1 valides. Donc, si vous n'avez que des caractères <=127 dans le flux, mb_detect_encoding
tombera sur le jeu de caractères à prévalence plus élevée (qui est par défaut "UTF-8")...