Heim > Web-Frontend > js-Tutorial > Escape, encodeURI oder encodeURIComponent: Wann sollte welche für die Codierung von Abfragezeichenfolgen verwendet werden?

Escape, encodeURI oder encodeURIComponent: Wann sollte welche für die Codierung von Abfragezeichenfolgen verwendet werden?

Barbara Streisand
Freigeben: 2024-12-11 02:12:09
Original
184 Leute haben es durchsucht

Escape, encodeURI, or encodeURIComponent: When to Use Which for Query String Encoding?

Wann Escape, encodeURI oder encodeURIComponent für die Abfragezeichenfolgenkodierung verwendet werden sollten

Im Zusammenhang mit dem Senden einer Abfragezeichenfolge an einen Webserver hängt die geeignete Kodierungsmethode davon ab die spezifischen Codierungsanforderungen.

escape()

Die Funktion escape() sollte nicht verwendet werden, da Es ist in der ECMAScript-Spezifikation veraltet. Es kodiert alle Sonderzeichen außer @, _, *, und -.

encodeURI()

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 @.

encodeURIComponent()

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
Nach dem Login kopieren

Sie würde encodeURI() verwenden, um die folgende codierte URL zu erhalten:

http://www.example.org/a%20file%20with%20spaces.html
Nach dem Login kopieren

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")
Nach dem Login kopieren

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 + "&param2=99"
Nach dem Login kopieren

Dies führt zu der folgenden vollständig codierten URL:

http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55&param2=99
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage