Cóż, odkryłem, że SET NAMES
nie jest wcale takie wspaniałe. Zajrzyj do dokumentacji
...
Zazwyczaj wykonuję 4 zapytania:
SET CHARACTER SET 'UTF8';
SET character_set_database = 'UTF8';
SET character_set_connection = 'UTF8';
SET character_set_server = 'UTF8';
Daj temu szansę i zobacz, czy to zrobi to za Ciebie...
Aha, i pamiętaj, że wszystkie znaki UTF-8 <=127 są również poprawnymi znakami ISO-8859-1. Więc jeśli masz tylko znaki <=127 w strumieniu, mb_detect_encoding
padnie na wyższy zestaw znaków rozpowszechnienia (którym domyślnie jest "UTF-8")...