Umlaute aus einer Eingabe filtern [Problem gelöst]

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

itst hat geschrieben:Die Eingabe kommt doch per Formular, oder?

In diesem Fall ist der Inhalt der Variable URL-kodiert, so daß Umlaute in ihren Hex-Code umgewandelt sind. Das musst Du mit urldecode() rückgängig machen.
Das macht PHP ja schon automatisch. Wenn man sich die von dragon geposteten Strings ansieht, stellt man jedoch fest, daß es sich dabei um UTF-8 handelt. Anstatt seines komplizierten Codes würde also folgender reichen:

Code: Alles auswählen

$search = array('Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', 'ß');
$replace = array('Ae', 'Oe', 'Ue', 'ae', 'oe', 'ue', 'ss');
$string = str_replace($search, $replace, utf8_decode($string));
Bleibt noch die Frage, wieso die Strings überhaupt als UTF-8 ankommen - wird das von HTTP so gefordert?
Bin gerade zu faul, selbst nachzugucken :D
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

dragon1402 hat geschrieben:

Code: Alles auswählen

  $string = urldecode($string);
ich glaub, das kannst du dir dann sparen. hast ja eh keinen code mehr da oder irre ich mich?
Antworten

Zurück zu „Coding & Technik“