PHP: grobes Problem mit Text-Kodierung

joedelord

joedelord

Aktives Mitglied
Thread Starter
Dabei seit
12.12.2002
Beiträge
492
Reaktionspunkte
0
hallo macuser

den shop vom letzten problem habe ich mitlerweile auf mysql umgebaut, ist soweit auch fertig und funktioniert nur habe ich jetzt ein problem mit dem zeichesatz. ich moechte alle eingaben mit str_replace() von diversen sonderzeichen bereinigen und diese durch html code ersetzen. wenn ich nun str_replace('ä', 'ä', $str) versuche passiert genau nichts! anscheinen ist mein 'ä' das ich eingebe nicht das gleiche das ich in die textarea eigeben kann. (normale sonderzeichen wie zb '&' funcktionieren)

ich habe schon versucht im editor die kodierung zu aender, brachte aber nix.

vielleicht kann mir wer helfen. ist recht dringend.
lg, joedelord
 
hallo aguilera

vielen dank fuer deine hilfe. str_replace habe ich shon probiert auch htmlspecialchars() (das gleiche wie htmlentities()) jedoch noch nicht mit dem parameter fuer den zeichsatz. werde das morgen gleich ausprobieren, sollte funktionieren

danke, joedelord
 
so htmlspecialchars() will zwar immer noch nicht aber str_replace funktioniert.

um mit str_replace sonderzeichen einer textarea auszutauschen muss man glaube ich die php datei die den austausch vornimmt in den gleichen zeichensatz konvertieren. bei mir war es der latin iso.

lg, joedelord
 
Wichtig ist, daß der Client der die Texarea ausfüllt den gleichen Zeichensatz verwendet wie der Server der das dann per PHP prüft. Treten hier länderbedingte unterschiede auf, können die dann nat. nicht geparsed werden. Man kann per http-header den Client beim Aufruf der Webseite in einen Zeichensatz zwingen, so daß man die Buchstaben wieder vergleichen kann. Ich schau das gerne mal nach, wenn Du das brauchst ( habs hier in der Arbeit gerade nicht präsent!)

Gruß Karsten
 
Dir dürften die Umlaute beim FTP-Upload flöten gehen. Setz Interarchy (oder was auch immer) mal auf binärcodierung (statt text) oder editier die Datei direkt auf dem Server.
Gruß Marc
 
Zurück
Oben Unten