Heim  >  Artikel  >  Web-Frontend  >  Einfache und klare Unterscheidung zwischen Escape, encodeURI und encodeURIComponent

Einfache und klare Unterscheidung zwischen Escape, encodeURI und encodeURIComponent

青灯夜游
青灯夜游nach vorne
2018-10-08 16:05:041669Durchsuche

In diesem Artikel werden hauptsächlich die Unterschiede zwischen Escape, EncodeURI und EncodeURIComponent vorgestellt

Vorwort

Lassen Sie uns über die Unterschiede zwischen ihnen sprechen Diese drei Methoden Es gibt zu viele Artikel, aber die meisten 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.
Davon werden ASCII-Buchstaben, Zahlen und @*/+ nicht kodiert, der Rest jedoch 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 beiden um codierte URLs. Der einzige Unterschied besteht im codierten Zeichenbereich. Die
encodeURI-Methode codiert nicht die folgenden Zeichen: ASCII-Buchstaben, Zahlen, ~!@#$&*()=:/,; ?+ '
Die encodeURIComponent-Methode codiert die folgenden Zeichen nicht: ASCII-Buchstaben, Zahlen, ~!*()'
EncodeURIComponent verfügt also über 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 ich in welcher Situation anwenden soll.

Lassen Sie uns darüber sprechen 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 kodieren und dann diese URL verwenden müssen, verwenden Sie encodeURI.

Zum Beispiel wird

encodeURI("//www.php.cn/season-huang/some other thing");

nach der Kodierung zu

"//www.www.php.cn/season-huang/some%20other%20thing";

, wobei Leerzeichen als %20 kodiert werden. Wenn Sie jedoch encodeURIComponent verwenden, lautet das Ergebnis:

"http%3A%2F%2Fwww.jb51.net%2Fseason-huang%2Fsome%20other%20thing"

Sehen Sie den Unterschied Ja, sogar „/“ wird codiert und die gesamte URL ist nicht mehr verwendbar. ​

3. Wenn Sie Parameter in der URL kodieren müssen, ist encodeURIComponent der beste Weg.

var param = "//www.php.cn/season-huang/"; //param为参数
param = encodeURIComponent(param);
var url = "//www.php.cn?next=" + param;
console.log(url) ////www.php.cn?next=http%3A%2F%2Fwww.jb51.net%2Fseason-huang%2F

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 gesamte Inhalt dieses Kapitels. Weitere verwandte Tutorials finden Sie unter JavaScript-Video-Tutorial!

Das obige ist der detaillierte Inhalt vonEinfache und klare Unterscheidung zwischen Escape, encodeURI und encodeURIComponent. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen