PHP Umlaute in der URL

darton

Lt. Junior Grade
Registriert
Okt. 2004
Beiträge
282
Hallo!
Ich habe ein Formular, wo ich mittels einer Dropdown-Liste verschiedene Orte auswählen kann. Der Ort wird dann per GET übergeben und in einer SQL-Abfrage verwendet. Wähle ich nun z.B. München aus, wird München übertragen als "M%C3%BCnchen" und es funktioniert auch alles. Gehe ich aber nun in die Adressleiste vom Firefox, wähle die URL aus und drücke einfach Enter, wird München übertragen als "M%FCnchen". Dies mag mein PHP-Skript irgendwie nicht und die SQL-Abfrage gibt ein leeres Ergebnis zurück. Was läuft da falsch?
 
Die Funktion bewirkt leider gar nichts. Vielleicht sollte ich noch dazu sagen, dass im Internet Explorer alles funktioniert, nur im Firefox leider nicht.
 
Der Fehler liegt nicht im Codieren der URL sondern in deiner Datenbank-Anbindung. Du hast es hier mit einem typischen UTF8-Fehler zu tun.

%C3%BC = ü (das kommt raus, wenn man ü nicht korrekt in UTF8 überträgt bzw. falsch in der DB speichert)
%FC = ü (das sollte da stehen, wenn man keinen Scheiß gebaut hat)

Guck dir einfach an, wie deine Umlaute in der Datenbank im phpMyAdmin aussehen. Wenn da auch nur ü & Co stehen, dann hast du einfach Mist gebaut.

Lösung:
1.) alle Umlaute in der Datenbank von der Encoding-Grütze auf was verwertbares umwandeln
2.) da, wo du deine Datenbankverbindung aufbaust als allerersten Query ein
mysql_query("SET NAMES 'utf8'", $connection);
zünden (wobei $connection = der Verbindung ist)
 
Zurück
Oben