URL-Parameter mit JavaScript dekodieren
Diese sollte einfache Aufgabe, aber ich kann nicht scheinen, um eine Lösung zu finden.
Habe ich eine einfache Zeichenfolge, die übergeben wird als query-string-parameter wie diese: This+is+a+message+with+spaces
. Ich möchte zu entschlüsseln, die parameter mit Hilfe von Javascript This is a message with spaces
aber ich kann nicht scheinen, um es zu decodieren.
Ich habe versucht decodeURI('This+is+a+message+with+spaces')
aber das Ergebnis enthält immer noch die +
Zeichen.
Jede Hilfe würde geschätzt werden. Danke!
InformationsquelleAutor der Frage user852367 | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem plus-Zeichen nicht codiert/decodiert. Um zu sehen, die decode-Funktion arbeiten, müssen Sie passieren eine kodierte URI-ersten. Werfen Sie einen Blick:
Generiert:
http://www.foo.com/bar?foo=foo%20bar%20jar
d.h. der kodierte URI.Generiert:
http://www.foo.com/bar?foo=foo bar jar
d.h., die URI-dekodiert.InformationsquelleAutor der Antwort davidbuzatto
Ja, es ist wahr, dass decodeURIComponent Funktion nicht umwandeln + in den Raum. So haben Sie zu ersetzen, die + mit der replace-Funktion.
Idealerweise unterhalb Lösung funktioniert.
InformationsquelleAutor der Antwort Supriti Panda
Wie es wurde darauf hingewiesen, bereits
decodeURI
Funktion konvertieren nicht+
Raum, aber es gibt einige Dinge, die Wert sind, hier einsehen:decodeURI
ist gedacht für die gesamte URI, d.h. es muss nicht decodieren Separatoren wie?
&
=
+
usw.decodeURIComponent
sollte genutzt werden(lohnt sich ein Blick auf: Was ist der Unterschied zwischen decodeURIComponent und decodeURI? )
+
codiert, wie%2B
ist, so sollten Sie nicht ersetzen+
nach der Konvertierung, da Sie vielleicht verloren+
Anzeichen, dass Sie tatsächlich wollen, dass es, z.B.something?num=%2B632+905+123+4567
werden sollten:something?num=+632 905 123 4567
da Sie wahrscheinlich zum extrahieren der Nummer:
+632 905 123 4567
Also der richtige Weg, dies zu tun ist:
InformationsquelleAutor der Antwort LihO
Ich meine eigene string-Methoden zu unterstützen, die benötigte Codierung/Decodierung. Diese Methoden behandeln die + - Codierung und-Decodierung richtig, so dass Sie haben, Pluszeichen (+) in Ihrem string und haben noch die ursprünglichen Räume werden codiert als +'en.
InformationsquelleAutor der Antwort Harvey