Gunther: Umlaut der URL wird nicht erkannt

Beitrag lesen

Hallöle,

in die Adresszeile der Opera habe ich einen Parameter &ORT=bad dürkheim also mit Umlaut.

Nachdem ich das abgeschickt habe, erscheint der Parameter in der Adresszeile so: &ORT=bad%20d%FCrkheim demnach ist %FC das ü.

Auf der HTML-Seite (UTF-8 codiert) sieht die Ausgabe so aus:
bad d�rkheim

Aha, dachte ich, du musst den GET- Parameter noch nach UTF-8 wandeln:
mb_convert_encoding ( trim( $_GET['ORT'] ), 'UTF-8', 'auto' )

Nun wird aber das ü verschluckt:
bad drkheim

Der Ort wird in beiden Fällen natürlich in der Datenbank nicht gefunden.

das Problem hatte ich auch gerade - siehe http://forum.de.selfhtml.org/archiv/2009/10/t191630/

Schlussfolgerung für mich daraus:
Ich prüfe einen evt. vorhandenen Query-String darauf, ob er UTF-8 valide ist. Wenn ja, verarbeite ich ihn weiter, wenn nein, ignoriere ich ihn.

Da dieses Problem AFAIK überwiegend bei einigen Browsern auf Windows Systemen auftaucht, könntest du "auf Verdacht" auch mal davon ausgehen, dass der Query-String womöglich CP1252 kodiert ist, ihn entsprechend umwandeln und gucken, ob es dann eine Übereinstimmung gibt.

Das Problem sollte entfallen, wenn der Query-String über ein Formular oder einen Link von einer entsprechend UTF-8 kodierten Seite kommt. Dann ist auch der Query-String vollständig UTF-8 kodiert.

Gruß Gunther