Demzufolge:
http://en.wikipedia.org/wiki/Query_string#URL_encoding
"+" ist ein gültiges URL-Codierungs-Token.
Wenn ja, warum kann "t decodeURIComponent
oder decodeURI
"Hallo + Welt" zu "Hallo Welt" dekodieren?
Wenn "+" gültig ist, muss es in JavaScript eine eingebaute Funktion geben, die "Hallo + Welt" in "Hallo Welt" umwandeln kann?
Antworten:
0 für die Antwort № 1Das Verhalten von decideURIComponent
ist definiert als "inverse" Operation von encodeURIComponent
:
Das
decodeURIComponent
Funktion berechnet eine neue Version von aURI
in dem jede Escape-Sequenz und UTF-8-Codierung der Art, die durch die eingeführt werden könnteencodeURIComponent
Funktion wird durch das Zeichen ersetzt, das es darstellt.
Und encodeURIComponent
ersetzt keine Leerzeichen mit +
, aber mit %20
.
(ähnlich für decodeURI
)
Wenn "+" gültig ist, muss es in JavaScript eine eingebaute Funktion geben, die "Hallo + Welt" in "Hallo Welt" umwandeln kann?
Natürlich gibt es:
"hello+world".replace(/+/g, " ");
0 für die Antwort № 2
weil encodeURIComponent
würde einen Raum codieren %20
also würdest du bekommen hello%20world
. Wenn Sie ersetzen möchten +
Zeichen würde ich vorschlagen, Regex zu verwenden