Die encodeURI()
Funktion kodiert ein Uniform Resource Identifier (Abk. URI, englisch für einheitlicher Bezeichner für Ressurcen), indem sie jedes Vorkommen von speziellen Zeichen durch die jeweilige UTF-8 Zeichenkette ersetzt, die das Zeichen repräsentiert.
Syntax
encodeURI(URI)
Parameter
URI
- Ein vollständiger Uniform Resource Identifier.
Return value
Ein neuer String, kodiert als Uniform Resource Identifier (URI).
Beschreibung
Die Funktion geht davon aus, dass die URI eine richtige URI ist, sodass sie keine Zeichen kodiert die spezielle Bedeutungen haben.
encodeURI
ersetzt alle Zeichen außer die folgenden mit ihrer zugehörigen UTF-8 Escape-Sequenz:
Typ | Beinhaltet |
Zurückgehaltene Zeichen | ; , / ? : @ & = + $ |
Unescapte | alphanumerische Zeichen, - _ . ! ~ * ' ( ) |
Zeichen für Nummern | # |
Beachten Sie, dass die encodeURI
Funktion keine richtigen HTTP GET und POST Requests erzeugen kann, wie für XMLHTTPRequests benötigt, da "&", "+", und "=" nicht kodiert werden. Diese werden in GET und POST als spezielle Zeichen behandelt. Für solche Verwendungen steht die encodeURIComponent
Funktion zur Verfügung.
Beachten Sie auch, dass ein URIError
erzeugt wird, sobald versucht wird, ein surrogate, welches nicht zu einem high-low Paar gehört, zu kodieren.
// high-low paar ok
console.log(encodeURI('\uD800\uDFFF'));
// einzelnes high surrogate erzeugt ein "URIError: malformed URI sequence"
console.log(encodeURI('\uD800'));
// einzelnes low surrogate erzeugt ein "URIError: malformed URI sequence"
console.log(encodeURI('\uDFFF'));
Wenn Sie den neueren RFC3986 Standart für URLs benutzen möchten, der eckige Klammern beachtet (für IPv6) und Teile die zur URL gehören könnten (wie der Host) nicht kodiert, könnte der kleine Code-Auszug helfen:
function fixedEncodeURI(str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'encodeURI' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'encodeURI' in dieser Spezifikation. |
Standard | |
ECMAScript Latest Draft (ECMA-262) Die Definition von 'encodeURI' in dieser Spezifikation. |
Entwurf |
Browser kompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Normale Unterstützung | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Normale Unterstützung |
(Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |