Bene, ho trovato che SET NAMES
non è proprio eccezionale. Dai un'occhiata a i documenti
...
Quello che faccio in genere è eseguire 4 query:
SET CHARACTER SET 'UTF8';
SET character_set_database = 'UTF8';
SET character_set_connection = 'UTF8';
SET character_set_server = 'UTF8';
Provalo e vedi se questo fa per te...
Oh, e ricorda, tutti i caratteri UTF-8 <=127 sono anche caratteri ISO-8859-1 validi. Quindi, se hai solo caratteri <=127 nello stream, mb_detect_encoding
cadrà sul set di caratteri a prevalenza più alta (che per impostazione predefinita è "UTF-8")...