Fleshgrinder
Lt. Junior Grade
- Registriert
- Mai 2005
- Beiträge
- 405
So, jetzt bastel ich hier schon seit einer Ewigkeit rum und komm nicht dahinter. Vielleicht kann mir hier jemand helfen oder zumindest das Problem erklären.
Ich habe eine URL die wie folgt aussieht:
http://www.example.com/Nützliche_Links
Soweit so gut, durch URL-rewriting, spezielle .htaccess Einstellungen und dem darunterliegenden PHP Skript wird die Seite perfekt angezeigt, in allen Browsern. Nun zum paradoxen.
http://www.example.com/Nützliche_Links funktioniert!
http://www.example.com/N%FCtzliche_Links funktioniert nicht!
Obwohl die untere Kodierung den Empfehlungen des W3Cs folgt wird es nicht korrekt umgeleitet.
Siehe auch:
- RFC 3986
- URL-Encoding - Wikipedia
- W3Schools: HTML URL Encoding Reference
Bei Wikipedia funktionieren übrigens beide obigen Varianten, ich bin die Skripts von MediaWiki auch durchgegangen, konnte jedoch nichts finden was mir irgendwie weiterhilft.
Auf jeden Fall wird bei Verwendung der URL-Encoding Standards das Zeichen falsch interpretiert und als � übergeben. Was natürlich zu einem Fehler führt, da es kein valides Zeichen ist und ich somit auch keinen Datenbankeintrag hierfür habe.
Frage ich die URL ab (also z. B. mit $_SERVER['REQUEST_URI']) hätte ich die Möglichkeit die URI mit dem kodierten Wert in einer Variablen abzulegen um dann z. B. mit str_replace die möglichen Zeichen zu ersetzen. Jedoch kann das imho nicht die Lösung für dieses Problem sein.
Die Funktionen urldecode() und rawurldecode() können nur die passenden UTF-8 Kodierungen korrekt umwandeln.
Jegliche Hilfe, Tipps und Tricks sind erwünscht.
LG
Richard
Ich habe eine URL die wie folgt aussieht:
http://www.example.com/Nützliche_Links
Soweit so gut, durch URL-rewriting, spezielle .htaccess Einstellungen und dem darunterliegenden PHP Skript wird die Seite perfekt angezeigt, in allen Browsern. Nun zum paradoxen.
http://www.example.com/Nützliche_Links funktioniert!
http://www.example.com/N%FCtzliche_Links funktioniert nicht!
Obwohl die untere Kodierung den Empfehlungen des W3Cs folgt wird es nicht korrekt umgeleitet.
Siehe auch:
- RFC 3986
- URL-Encoding - Wikipedia
- W3Schools: HTML URL Encoding Reference
Bei Wikipedia funktionieren übrigens beide obigen Varianten, ich bin die Skripts von MediaWiki auch durchgegangen, konnte jedoch nichts finden was mir irgendwie weiterhilft.
Auf jeden Fall wird bei Verwendung der URL-Encoding Standards das Zeichen falsch interpretiert und als � übergeben. Was natürlich zu einem Fehler führt, da es kein valides Zeichen ist und ich somit auch keinen Datenbankeintrag hierfür habe.
Frage ich die URL ab (also z. B. mit $_SERVER['REQUEST_URI']) hätte ich die Möglichkeit die URI mit dem kodierten Wert in einer Variablen abzulegen um dann z. B. mit str_replace die möglichen Zeichen zu ersetzen. Jedoch kann das imho nicht die Lösung für dieses Problem sein.
Die Funktionen urldecode() und rawurldecode() können nur die passenden UTF-8 Kodierungen korrekt umwandeln.
Jegliche Hilfe, Tipps und Tricks sind erwünscht.
LG
Richard