Heim  >  Artikel  >  Web-Frontend  >  So unterscheiden Sie Escape, EncodeURI und EncodeURIComponent

So unterscheiden Sie Escape, EncodeURI und EncodeURIComponent

一个新手
一个新手Original
2017-10-02 09:45:311277Durchsuche

1. Einleitung

Es gibt zu viele Artikel, die sich mit den Unterschieden zwischen diesen drei Methoden befassen, aber die meisten davon sind sehr kompliziert. In diesem Artikel wird versucht, diese drei Methoden aus praktischer Sicht zu erklären.

2. Escape und sie gehören nicht zur gleichen Kategorie

Einfach gesagt, Escape codiert eine Zeichenfolge (während die anderen beiden URLs codieren). sie sind auf allen Computern lesbar.
Das Ergebnis nach der Kodierung hat die Form %XX oder %uXXXX.
Unter diesen ASCII-Buchstaben, Zahlen, @*/+ werden diese Zeichen nicht kodiert, der Rest schon.
Das Wichtigste ist, dass Sie diese Methode vergessen, wenn Sie die URL kodieren müssen. Diese Methode wird für Zeichenfolgen verwendet, nicht für URLs.
Tatsächlich habe ich diese Methode in der tatsächlichen Arbeit nicht verwendet, daher werde ich nicht auf Details eingehen.

3. Die am häufigsten verwendeten encodeURI und encodeURIComponent

Es ist üblich, URLs zu kodieren, daher sollte diesen beiden Methoden in der Praxis besondere Aufmerksamkeit geschenkt werden.

Es handelt sich bei allen um codierte URLs. Der einzige Unterschied besteht im codierten Zeichenbereich. Die

encodeURI-Methode codiert Folgendes nicht Zeichen ASCII-Buchstaben, Zahlen, ~!@#$&*()=:/,;?+'encodeURIComponent-Methode

wird nicht Behandeln Sie die folgenden Zeichen. Codierung ASCII-Buchstaben, Zahlen, ~!*()'EncodeURIComponent hat also einen größeren Codierungsbereich als encodeURI.

Als praktisches Beispiel kodiert encodeURIComponent http:// in http%3A%2F%2F, encodeURI jedoch nicht.

Das Wichtigste ist: Welche Methode soll ich in welcher Situation anwenden? Praxisbeispiele.

 

 

1. Wenn es sich nur um eine codierte Zeichenfolge handelt und nichts mit der URL zu tun hat, verwenden Sie Escape.

2. Wenn Sie die gesamte URL codieren und dann diese URL verwenden müssen, verwenden Sie encodeURI.

Zum Beispiel wird

nach der Codierung zu

encodeURI("http://www.cnblogs.com/season-huang/some other thing");
, wo sich Leerzeichen befinden codiert Es wurde %20. Aber wenn Sie encodeURIComponent verwenden, wird das Ergebnis zu

. Sehen Sie den Unterschied? Selbst „/“ ist codiert und die gesamte URL ist nicht mehr verwendbar
"http://www.cnblogs.com/season-huang/some%20other%20thing";
.

"http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2Fsome%20other%20thing"
3. Wenn Sie Parameter in der URL kodieren müssen, ist encodeURIComponent der beste Weg.

Ich habe es gesehen, das „/“ im Parameter kann codiert werden. Wenn Sie encodeURI verwenden, wird es definitiv ein Problem geben, da das folgende / codiert werden muss.

Das obige ist der detaillierte Inhalt vonSo unterscheiden Sie Escape, EncodeURI und EncodeURIComponent. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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