Sie sollten nicht verwenden encodeURIComponent()
direkt.
Schauen Sie sich RFC3986 an: Einheitlicher Ressourcenbezeichner (URI): Generische Syntax
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
Der Zweck der reservierten Zeichen besteht darin, eine Reihe von Abgrenzungszeichen bereitzustellen, die von anderen Daten innerhalb eines URI unterscheidbar sind.
Diese reservierten Zeichen aus der URI-Definition in RFC3986 werden NICHT von encodeURIComponent()
.
MDN Web Docs: encodeURIComponent()
Um RFC 3986 strikter einzuhalten (der !, ', (, ) und * reserviert), obwohl diese Zeichen keine formalisierte URI-Begrenzungsfunktion haben, kann das Folgende sicher verwendet werden:
Verwenden Sie die Funktion MDN Web Docs...
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
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).