Verschlüsselte URL mit eckigen Klammern. Unterschiedliches Verhalten in Chrome / Firefox / IE

8

Ich habe einen Link, der so aussieht (es ist ein bisschen hässlich, weil es eine URL ist)

%Vor%

Um ein bisschen klar zu sein, ist es URL-codiert und übersetzt in

%Vor%

Wenn das Formular gesendet wird, sieht die Ziel-URL in verschiedenen Browsern anders aus:

In Firefox sieht es wie gewünscht aus:

%Vor%

In Chrome werden die eckigen Klammern als URL-codiert angezeigt (was sehr hässliche und nicht professionell aussehende Adressen ergibt, wenn Sie viele davon verwenden).

%Vor%

In IE9 (und älter) wird alles URL-codiert angezeigt:

%Vor%

Ich kann mit dem Teil "utf8 = ..." leben, da es nur ein Problem im IE ist. Aber keiner der Browser hat ein Problem mit der Handhabung, wenn eckige Klammern explizit in die URL eingegeben werden, also verstehe ich nicht, warum Chrome und IE, aber nicht Firefox die Klammern mit URL-Codierung anzeigen muss.

Da der HTML-Code des Formulars in allen Browsern gleich ist, nehme ich an, dass dies mit den Browsern zu tun hat und nicht mit der Site (in diesem Fall eine Ruby-on-Rails-Site)

BEARBEITEN: Um meine eigentlichen Fragen zu klären: Warum ist das anders? Gibt es eine Möglichkeit, es zumindest in Chrome gut aussehen zu lassen? Es kann hässlich sein-behoben werden durch nicht URL-Escaping in der href="...", aber ich nehme an, dass das gegen URL-Codierungsregeln ist?

    
foolo 27.09.2012, 19:29
quelle

2 Antworten

1

Da Sie diese Links (mit Vorsicht) teilen möchten, nehme ich an, dass Sie erwarten, dass Ihre Links geteilt, von Webseiten verlinkt, kopiert, per E-Mail verschickt werden.

Es ist wahrscheinlich, dass sogar außerhalb des Browsers (z. B. wo Ihre Links in andere Seiten kopiert werden, in E-Mails usw.) eine Codierung stattfindet. Möglicherweise müssen Sie akzeptieren, dass hässliche irgendwo erscheint, wenn Sie diese Zeichen benutzen müssen.

    
A.M. D. 07.11.2012 15:43
quelle
-1

Bitte korrigiere mich, wenn ich falsch liege, aber eine Möglichkeit, dieses Problem zu lösen, besteht darin, POST-Formularwerte abzufangen und sie in GET mit PHP umzuwandeln. So könnten Sie beispielsweise ein Formular mit einer POST-Methode verwenden:

%Vor%

Dann fangen Sie die Formularwerte nach der Übergabe ab, erstellen eine GET-Abfrage mit PHP und leiten den Benutzer um:

%Vor%

Dies ist natürlich für bestimmte Szenarien (und vielleicht etwas außerhalb des Bereichs der OP-Frage), aber es scheint in meinem Fall gut zu funktionieren.

    
appel 09.02.2013 16:49
quelle

Tags und Links