Sven Rautenberg: bzw. (BROWSER) Maskierte Sonderzeichen übergeben

Beitrag lesen

MoiN!

Die charset=iso-8859-1-Angabe habe ich sowohl in der Ausgangs- als auch in der Ausgabeseite. In der Ausgangsseite wird auch noch alles richtig angezeigt, in der Ausgabeseite wird z.B. "ü" zu "ü". Ein unmaskiertes ü wird richtig dargestellt. Ich dachte nur, Umlaute sollten als "ä", "ö" und "ü" maskiert werden - oder liege ich da falsch?

Nein, nicht unbedingt. Nur mußt du dann natürlich eventuelle Codierungen auch verstehen.

Es läuft so:
Der Browser kriegt als Quelltext für den Link folgendes:
href="/cgi-bin/foto.pl?bild=sechura.jpg&titel=in+der+Sechura-Wüste,+Peru&seite=peru.shtml"

Das wird durch die Entity-Erkennung konvertiert zu:
href="/cgi-bin/foto.pl?bild=sechura.jpg&titel=in+der+Sechura-Wüste,+Peru&seite=peru.shtml"

Und der Umlaut "ü" wird von Opera konvertiert zu "%C3%BC". Sieht ziemlich nach UTF-8-Zeichen aus, zumindest sind es _zwei_ Bytes, wo EIN Byte gereicht hätte. :)

Tja, und dein Script ist dann einfach nicht in der Lage, aus dieser eindeutigen Definition des Zeichens wieder ein korrektes ü zu machen.

Und es ist auch nicht in der Lage, das codierte Entity für ü durchzureichen. Wenn ich nämlich
href="/cgi-bin/foto.pl?bild=sechura.jpg&titel=in+der+Sechura-W%26uuml;ste,+Peru&seite=peru.shtml"
versuche, dann ist %26 ein &, entsprechend kommt %26uuml; als ü beim Script an, aber irgendwas scheint das Script zu stoppen.

Guter Rat: Benutze Standardkomponenten für das Entgegennehmen von Formulardaten. Scheinbar ist da was selbstgestricktes am Werkeln. Ich bin nicht der Perl-Modul-Experte, aber irgendwas für CGI gibts garantiert. Sicherlich wird Christian deswegen auch noch in die Bresche springen. :)

- Sven Rautenberg