Kodierung von Umlauten mit GET erforderlich?

Spelmann

Erfahrenes Mitglied
Hallo zusammen,
ich möchte für eine Navigation eine Reihe von Variablen mit GET übergeben. Die Variablen sind vom Typ String.
Sie enthalten Leerzeichen, Umlaute und einfache Anführungszeichen ( ′ ).

Nun meine Frage:
Muss ich die Variable zwingend mit urlencode() kodieren?
Es läuft ja auch ohne, wenn ich es online teste. Oder bedeutet das nicht automatisch, daß das auch von einem anderen Zugang aus funktioniert?

Beispiel:
HTML:
<a href="index.php?id=Falträder 20&prime;&prime;&id_2=Nabenschaltung">Link</a>

Bin mir da unsicher.
Wie immer sehr dankbar für Hilfe
 
Hi,
also du solltest wenn du schon umbedingt Sonderzeichen in den Variablennamen nutzen willst "urlencode( )" und "urldecode( )" verwenden, weil deine Variablen werden ja vom Browser des Users übermittelt und da kann es durchaus bei alten Browsern zu Fehlern oder falschen Zeichen kommen wenn du da versuchst Sonderzeichen zu übermitteln.
Bei den neueren mag es auch so gehen, ist aber trotzdem nicht wirklich gut. Eigentlich sollte man eh auf Sonderzeichen in Variablennamen verzichten.

mfg.Fide
 
@Fide
Ok. Dann werde ich das so machen. Was ich nur noch nicht verstehe ist:
PHP:
<?php echo urlencode("Falträder 26&Prime");    ?>

ergibt: Faltr%C3%A4der+26%26Prime

in der Browserzeile dagegen ergibt der selbe String:
Falträder+26%26Prime

Das ä wird dargestellt. Woher kommt dieser Unterschied? Muss mich das irritieren?

@Gumbo
Feiner Tipp :)
 
Zuletzt bearbeitet:
Die Browser sind so freundlich und stellen UTF-8-kodierte Zeichen als solche statt der URL-Kodierungen dar. Übertragen wird jedoch die URL-kodierte Form.
 
Hab gerade mal auf einem älteren IE6 getestet. Und in der Tat, da wird die id ganz anders dargestellt. Prima, jetzt habe ich es soweit verstanden wie ich es brauche, und funktioniert auch.

Dankeschön.
 
Zurück