Das Problem war das ich irgendwas ersetzen wollte und aber die Umlaute erhalten bleiben sollten.
Das Funktioniert solange wunderbar wie man die Finger von UTF-8 lässt.
Bei mir kommen die Daten aus eine MySQL-Datenbank die UTF-8 Codiert ihre Daten speichert.
Ersetzen wollte ich damit
preg_replace("/[^A-Za-z0-9äÄüÜöÖß ]/"," ", $text);
Da hatte aber wohl PHP was dagegen und hat einfach die Umlaute auch mit rausgeschmissen.
Die Funktion preg_replace(); kann nämlich nicht mit Umlauten die UTF8-Codiert sind umgehen. Zum glück gibts da die Funktion utf8_decode(); mit ihr kann man einen String der UTF-8-Codiert ist in ein für preg_replace(); verständliches Format umwandeln
Nach dem Ersetzen muss der String nur wieder nach UTF-8 Codiert werden und man kann wie gewohnt weiter machen.
Hier ein Stück Code:
<pre>
$text = utf8_decode($text); $text = preg_replace("/[^A-Za-z0-9äÄüÜöÖß /"," ", $text); $text = utf8_encode($text);
Das geht natürlich auch verschachtelt:
$text = utf8_encode(preg_replace("/[^A-Za-z0-9äÄüÜöÖß /"," ", utf8_decode($text)));