Um eine URL zu kodieren, gibt es, wie bereits erwähnt, zwei Funktionen:
encodeURI()
und
encodeURIComponent()
Der Grund dafür, dass es beide gibt, ist, dass bei der ersten die URL erhalten bleibt, wobei das Risiko besteht, dass zu viele Dinge nicht kodiert werden, während bei der zweiten alles Notwendige kodiert wird.
Bei der ersten Variante könnten Sie die neue URL in die Adressleiste kopieren (zum Beispiel) und es würde funktionieren. Allerdings würden Ihre unescapten '&'s mit Feldbegrenzern interferieren, die '='s würden mit Feldnamen und -werten interferieren, und die '+'s würden wie Leerzeichen aussehen. Aber für einfache Daten, bei denen Sie die URL-Natur dessen, was Sie escapen, beibehalten wollen, funktioniert dies.
Die zweite ist alles, was Sie tun müssen, um sicherzustellen, dass nichts in Ihrer Zeichenkette mit einer URL interferiert. Es lässt verschiedene unwichtige Zeichen uneingekapselt, so dass die URL so gut wie möglich ohne Störungen lesbar bleibt. Eine auf diese Weise kodierte URL funktioniert nicht mehr als URL, wenn sie nicht unescaped wird.
Wenn Sie sich also die Zeit nehmen können, sollten Sie immer encodeURIComponent() verwenden - vor dem Hinzufügen von Name/Wert-Paaren kodieren Sie sowohl den Namen als auch den Wert mit dieser Funktion, bevor Sie ihn dem Abfrage-String hinzufügen.
Es fällt mir schwer, Gründe für die Verwendung von encodeURI() zu finden - das überlasse ich den klügeren Leuten.
30 Stimmen
Versuchen Sie es mit encodeURI() y decodeURI() .
1 Stimmen
Voir JavaScript urlencode-Funktion .
1 Stimmen
Sie können dieses Tool hier verwenden: phillihp.com/toolz/url-encode-decode
4 Stimmen
EncodeURIComponent()
0 Stimmen
Bitte gehen Sie zu diese Antwort da sie die einzige ist, die moderne Javascript-Funktionen verwendet (die nur im Internet Explorer unterstützt werden).