Tach!
wird aus "gro�" mit echo urlencode("Text ist $test <br>");
Du brauchst nur $test durch urlencode() zu schicken. Und es ist nur eine Kontrollausgabe. Jeder überflüssige Code ist da nur unnötige Mehrarbeit.
gro%EF%BF%BD
Da ist die UTF-8-Sequenz für das Zeichen � zu sehen.
mit SET NAMES 'latin1' bekomme ich
gro%3F
Und das ist ein Fragezeichen. Aus beiden kannst du die Umlaute nicht wiederherstellen. Das sieht danach aus, als ob der Import ISO-8859-1/Latin1-kodiert war, aber als UTF-8 deklariert importiert wurde. Dabei bilden unter anderem die Umlaute ungültige UTF-8-Sequenzen und stattdessen wird dann dieses �-Zeichen verwendet. Die ISO-8859-1-zu-UTF-8-Konvertierung fand dabei sehr wahrscheinlich vor dem eigentlichen Import statt, denn wenn man MySQL direkt ungültiges UTF-8 sendet, schneidet es an der Stelle den Reststring ab und trägt nur den Teil bis dahin ein. Das Abschneiden ist jedoch bei dir nicht der Fall.
dedlfix.