Die Sonderzeichen werden teilweise nicht umgewandelt

Bazooka

Grünschnabel
Hi,

ich versuche die ganze Zeit die Namen einzelner Items aus der Datenbank schön umzuwandeln, damit ich daraus eine URL machen kann, leider klappt das nicht so ganz, ich hätte gerne Leerzeichen in "_" ausgetauscht (klappt soweit) und Umlaute ebenfalls umgeschrieben also dass z.B. aus "ä" "ae" wird (klappt eigentlich auch, brauch ich dann nur noch für Großbuchstaben).

Umgesetzt habe ich es bis jetzt so:
Code:
<?
...
$carame = $row["carname"];
$carname2 = str_replace(' ','_', $carname);
$carname3 = str_replace('ä','ae', $carname2);
$carname4 = str_replace('ö','oe', $carname3);
$carname5 = str_replace('ü','ue', $carname4);
$autoname = urlencode($carname5);
...
echo( "<a href=\"$autoname\">$carname</a>");
...
?>

So, nun die Probleme:

der carname "...andere" bleibt gleich, wieso werden die Punkte nicht umgewandelt?

Warum wird bei mir das "ß" in "%DF" umgewandelt, während es bei Wikipedia in "%C3%9F" umgewandelt wird, was ist nun richtig bzw. arbeiten die nicht mit urlencode?

Warum wird aus "Farben & Zubehör" zwar wenn man über den Link geht, richtigerweise "Farben_%26_Zubehoer" wenn ich aber dann die Seite anklicke steht in der Adresszeile wieder "Farben_&_Zubehoer"?

Weiß jemand wie ich das lösen kann? Ich will ja nur schöne URLs, im Grunde wie bei Wikipedia nur mit dem Unterschied dass ich eben noch die Umlaute umwandeln möchte...

Gruß
Bazi
 
Das ß-Zeichen (U+00DF) besitzt bei der ISO-8859-1-Kodierung die Bitfolge DF, bei UTF-8 ist es die Bitfolge C3 9F.
 
fanste hat gesagt.:
Verwemde mal für das Umwandel rawurlencode() zum umwandeln und rawurldecode() zum zurückwandeln

Hi fanste, das hat leider gar nichts gebracht. Also kein Unterschied. Was mich auch wundert dass bei Wikipedia drei Punkte (also "...") ganz normal in der Adresszeile angezeigt werden, während bei mir der Server nachfragt ob ich eins der ähnlichen Dokumente meine.

Gruß
Bazi
 
Dass Wikipedia bei einer Anfrage anders reagiert als beispielsweise dein Webserver wird daran liegen, dass dort die Anfragen anders verarbeitet werden. Wahrscheinlich arbeitet Wikipedia mit dem Apache-Modul „mod_rewrite“ oder einer ähnlichen Technik zum Umschreiben von Anfragen.
 
Gumbo hat gesagt.:
Dass Wikipedia bei einer Anfrage anders reagiert als beispielsweise dein Webserver wird daran liegen, dass dort die Anfragen anders verarbeitet werden. Wahrscheinlich arbeitet Wikipedia mit dem Apache-Modul „mod_rewrite“ oder einer ähnlichen Technik zum Umschreiben von Anfragen.

Ja mod rewrite verwende ich ja auch, darum mache ich ja den ganzen Zirkus, jedenfalls wundert es mich dass dort Punkte möglich sind, bei mir jedoch nicht (was wohl auch am Server liegt).

Na ja, ich hab mir nun mal die Mediawiki geladen um zu sehen wie das dort gelöst wurde.

Vielen Dank
 
Zurück