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.
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");
. 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"
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!