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_äü).
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!