Scheinen wie eine ganz einfache Frage hier:Encoding URL-Komponenten mit einem Ampersand &
ich ein Programm habe, wo jemand einen String M&S
in einer Form eintritt und eine Abfrage ausgeführt wird. Ich verstehe die &
ist ein reserviertes Zeichen und muss daher codiert werden. Das Problem ist, dass es in einigen Kontexten zweimal zu kodieren scheint.
Wenn die URL in einem Javascript onClick
Ereignis verwendet wird, scheint normal URL-Codierung in Ordnung (hier kann der Bediener auf einen Spaltenkopf klicken, um zu sortieren) zu arbeiten:
<td onClick="AJAX_Get('http://10.0.0.195/program.exe?Qry147=M%26S&sortmethod1=161')">
Wenn jedoch die URL verwendet wird, in einem Anker (obwohl der Anker verwendet AJAX tatsächlich), so scheint es Codierung müssen zweimal:
<a href="javascript:AJAX_Get('http://10.0.0.195/program.exe?Qry147=M%2526S&sortmethod1=147')" title='Refresh'>Refresh</a>
beide der oben genannten Beispiele funktionieren. Sie sind jedoch handgenerierte Testfälle. Leider weiß ich in der Anwendung, wenn ich die URL tatsächlich erzeuge, nicht, wie sie verwendet wird. Wenn ich den URL-Parameter einmal codiere (M%26S
), funktioniert es in onClick
. Aber auf diese Weise im Anker verwendet, sieht der Server die URL als ...Qry147=M&S&sortmethod1=147...
- so muss es uncodiert worden sein, bevor es an den Server zurückgegeben wird.
Wenn ich es zweimal codieren (M%2526S
), funktioniert der Anker, aber für die onClick
sieht der Server ...Qry147=M%2526S...
.
Ich habe das Gefühl, dass mir hier etwas fehlt. Gibt es eine Möglichkeit, dies in beiden Fällen gleich zu machen?
Können Sie ein Beispiel geben, wie Sie tatsächlich diesen Wert verwenden? – Gumbo
Sorry, die Frage wurde nicht richtig angezeigt. Ich denke, ich muss daran arbeiten, meinen Kommentaren zu entgehen! Moment mal, ich werde versuchen, es zu bearbeiten. – asc99c
Quelltext anzeigen ... Über Initiativinitiative sprechen! :) Die Frage wird nun korrekt angezeigt, entschuldige mich dafür. – asc99c