Im Zusammenhang mit dem Senden einer Abfragezeichenfolge an einen Webserver hängt die geeignete Kodierungsmethode davon ab die spezifischen Codierungsanforderungen.
Die Funktion escape() sollte nicht verwendet werden, da Es ist in der ECMAScript-Spezifikation veraltet. Es kodiert alle Sonderzeichen außer @, _, *, und -.
Verwenden Sie encodeURI(), wenn Sie eine funktionale URL benötigen. Es kodiert alle Zeichen mit Ausnahme derjenigen, die speziell für URLs reserviert sind. Zu diesen reservierten Zeichen gehören /, &, ?, : und @.
Verwenden Sie encodeURIComponent(), wenn Sie den Wert eines URL-Parameters codieren möchten. Es kodiert alle Zeichen mit Ausnahme derjenigen, die ausdrücklich als nicht reserviert angegeben sind. Zu diesen nicht reservierten Zeichen gehören /, ?, : und @.
Beispiel:
Um die folgende Abfragezeichenfolge zu kodieren:
http://www.example.org/a file with spaces.html
Sie würde encodeURI() verwenden, um die folgende codierte URL zu erhalten:
http://www.example.org/a%20file%20with%20spaces.html
Wenn Sie jedoch Wenn Sie den Wert eines Parameters innerhalb der Abfragezeichenfolge kodieren möchten, verwenden Sie encodeURIComponent():
var p1 = encodeURIComponent("http://example.org/?a=12&b=55")
Der resultierende kodierte Parameterwert kann dann an die Basis-URL angehängt werden, um die vollständige URL zu bilden:
var url = "http://example.net/?param1=" + p1 + "¶m2=99"
Dies führt zu der folgenden vollständig codierten URL:
http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55¶m2=99
Das ist wichtig zu beachten encodeURIComponent() kodiert das Zeichen ' nicht, was zu Sicherheitslücken führen kann, wenn es beim Erstellen von HTML-Attributen nicht ordnungsgemäß gehandhabt wird.
Das obige ist der detaillierte Inhalt vonEscape, encodeURI oder encodeURIComponent: Wann sollte welche für die Codierung von Abfragezeichenfolgen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!