dedlfix: Fehlerhafte Umlaute reparieren

Beitrag lesen

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.