Tach!
so ziemlich unmittelbar vor der Query siehts ziemlich gleich aus:
Ich gehe also mal davon aus, dass nirgendwo ein verstecktes mysql(i)_set_charset('utf8') drinsteckt.
[...] character_set_results => latin1 [...]
Ein urlencode() des Ergebnis zeigt bei einem Begriff mit Umlaut:
Eigene+Eintr%C3%A4ge
Da ist ein Fehler im System. Wenn auf der Verbindung Latin1 erwartet wird, aber UTF-8 kommt, sind deine Daten im DBMS falsch drin. Da darf der phpMyAdmin eigentlich auch keine Umlaute richtig anzeigen.
%C3%A4 = ä und wird korrekt angezeigt.
Du hast hier ja auch UTF-8 vorliegen, obwohl das DBMS aus seiner Sicht Latin1 geliefert hat.
Unmittelbar vor der Query mit dem fehlerhaften Umlaut (wie erwartet identisch):
[...] character_set_results => latin1 [...]
Und der urlencode() des Ergebnis mit Begriff mit einem fehlerhaften Umlaut:
B%E4rbel
Hier kommt korrekt Latin1 aus dem DBMS, du reichst das aber als UTF-8 an den Browser weiter und
%E4 = soll ä sein und wird nicht korrekt angezeigt.
da es keine korrekte UTF-8-Sequenz ist, bekommst du da das � zu sehen.
Mein Fazit: Deine neue Anwendung redet die ganze Zeit UTF-8 mit dem DBMS, aber das denkt, es sei Latin1. So herum sieht alles problemlos funktionierend aus. Da steckt der Fehler. Wenn dann jemand daherkommt. An deiner Aussage, der PMA zeige alles richtig an, habe ich meine Zweifel.
dedlfix.