dedlfix: strtr funktioniert nicht

Beitrag lesen

Hi!

Abgesehen davon, dass du versuchst, einen Fehler mit noch mehr Unfug auszubügeln ...

$addCatName_p1  = addslashes($addCatName);

Was macht das addslashes() an dieser Stelle?

$addCatName_p2  = str_replace(' ', '_', $addCatName_p1); //e.g. Der_Test_mit_äü
$trans          = array("ä" => "ä", "ü" => "ü");
$addCatName_p3  = strtr($addCatName_p2, $trans); //e.g. Der_Test_mit_äü[/code]

Mach eine Kontrollausgabe, bei der du siehst, wie die Zeichen kodiert sind. Missbrauchen kann man dazu urlencode()

echo urlencode("ä-ü") . '<br>';
  echo urlencode($addCatName_p2);

Fällt dir was auf, besonders bei den Umlauten?

Was auch merkwürdig ist, wenn ich strtr($addCatName_p2, $trans); ändere in strtr('Der_Test_mit_äü', $trans); dann bekomme ich das gewünschte Resultat (Der_Test_mit_&auml;&uuml;).

Das heißt also, dass deine äü nicht übereinstimmen, die im Code eine andere Kodierung haben, als die, die in der Variable stehen.

Ich hoffe mir kann jemand helfen.

Lo!