Wenn du dir mal im MySQL-Handbuch anschaust, welche Parameter von SET CHARACTER SET auf welche Weise geändert werden und welche Auswirkungen diese Parameter haben, dann wirst du wissen, warum da nichts mehr zu retten ist, und dass der Provider unschuldig ist, wenn er es nicht war, der da SET CHARACTER SET zusammen mit der Datenbank-Kodierung Latin1 hinzugefügt hat.
Vom Client kommendes wird gemäß character_set_client interpretiert und werden vor ihrer Weiterverarbeitung nach character_set_connection umkodiert. S.C.S. setzt diesen Wert auf den Wert, der für die Datenbank konfiguriert wurde. Alle Zeichen, die in Latin1 vorhanden sind, sollten es also überlebt haben. Alle anderen können nicht nach Latin1 umkodiert werden und gehen verloren. Als Ersatz wird dann eben das Fragezeichen eingefügt.
Dann lag es vielleicht an einer alten PHP oder MySQL Version, als ich das eingebaut habe hat es nämlich definitiv funktioniert, auch bei anderen Leuten.
Die für den Anwender einfachste Möglichkeit wird sein: Dump mit explizit angegebener Kodierung anfertigen, Dump mit explizit angegebener Kodierung ins neue System einspielen, mit phpMyAdmin Ergebnis kontrollieren.
Kann ich dafür auch phpmyadmin verwenden? Dort finde ich nämlich nichts um den dump nochmal explizit als utf8 zu kodieren.
Oder muss ich das über Telnet machen? Davon habe ich noch weniger Ahnung. ;)