Hilfe! immer diese Umlaute

C

ctopfel2

Aktives Mitglied
Thread Starter
Dabei seit
29.07.2004
Beiträge
207
Reaktionspunkte
6
Ich habe ein Form, in welches ein User seinen Namen eingibt.. möglicherweise aber mit Umlauten.

mein php Skript soll daraus einen Usernamen ohne umlaute generieren.

Naja, denken vielleicht einige, mit preg_match kein Problem.. nun grundsätzlich beherrsche ich preg_match etc gut, aber ich habe immer Krieg mit diesen verschiedenen Encodings.

ich möchte nun also z.B ein Ö durch ein oe ersetzen:

$st = preg_replace("/Ö/","oe",$st);

sollte ja funktionieren.. tut es aber nicht immer, weil wenn ich das php file in Textwrangler abspeichere, und später wieder öffne, dann das Ö plötzlich ein ^ geworden ist (oder ähnlich).

Weiss jemand eine NARRENSICHERE Einstellungen im TextWrangler, oder besser eine andere methode, zb mit hexdarstellung oder was auch immer, wie ich das in den griff kriegen kann? Es sollte eine saubere Lösung sein, kein Hack.

Normalerweise speichere ich alles direkt in die DB, und habe nichts mehr mit preg_replace zu tun, aber hier müssen die umlaute direkt ins php file..

danke für alle tips
 
Hallo ctofel,

ich kenne zwar Textwrangler nicht, dafür aber aus der PHP Doku:
mixed str_replace ( mixed search, mixed replace, mixed subject)

Diese Funktion ersetzt alle Vorkommen von search innerhalb der Zeichenkette subject durch den String replace. Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion den Vorzug vor ereg_replace() oder preg_replace() geben

Ansonsten liegt dein Problem wohl an der Art der Zeichenkodierung mit dem Textwrangler die Dateien abspeichert. In BBEdit kannst du das z.B. einfach einstellen.

Stephan
 
Offtopic:
Ist ein wenig offtopic, aber ein einfaches str_replace() ist deutlich schneller bei solchen, einfachen Ersetzungen. Erst bei "wirklichen" Regulären-Ausdrücken bringt ein preg_match() oder ereg_replace() etwas.
 
Ich denke auch, dass das mit der Zeichenkodierung zusammen hängt, in der Textwrangler abspeichert. Musst Du mal im Programm suchen, ob man dort etwas einstellen kann (evtl. Stichwort: "encoding"). Am besten wäre iso-8859-1 oder utf-8.
 
Ersetze doch einfach das „^“ :D

*duck*

Zum Thema: Im Sichern-Dialog kannst Du unter „Options…“ andere Kodierungen auswählen. Ist ISO Latin 1 (=8859-1) nicht da, kannst Du die in den Preferences -> Text encoding aktivieren.
 
Zurück
Oben Unten