Start · Sprachen · JavaScript · Referenz · decodeURI()

decodeURI()

Funktion

Die Funktion <code>decodeURI()</code> dekodiert einen Uniform Resource Identifier (URI), der zuvor mit <code>encodeURI()</code> oder einer ähnlichen Routine erstellt wurde.

seit JavaScript ES3 Kategorie: core

Signatur

decodeURI(encodedURI)

Beschreibung

Die Funktion decodeURI() dekodiert einen Uniform Resource Identifier (URI), der zuvor mit encodeURI() oder einer ähnlichen Routine erstellt wurde.

decodeURI() ist eine Funktionseigenschaft des globalen Objekts.

Die Funktion decodeURI() dekodiert den URI, indem sie jede Escape-Sequenz der Form %XX als eine UTF-8-Code-Einheit (ein Byte) behandelt. In UTF-8 gibt die Anzahl der führenden 1-Bits im ersten Byte, die 0 (für 1-Byte-ASCII-Zeichen), 2, 3 oder 4 sein kann, die Anzahl der Bytes im Zeichen an. Durch Lesen der ersten Escape-Sequenz kann decodeURI() also bestimmen, wie viele weitere Escape-Sequenzen zu konsumieren sind. Wenn decodeURI() die erwartete Anzahl von Sequenzen nicht findet oder die Escape-Sequenzen kein gültiges UTF-8-Zeichen kodieren, wird ein URIError geworfen.

decodeURI() dekodiert alle Escape-Sequenzen, aber wenn die Escape-Sequenz eines der folgenden Zeichen kodiert, wird die Escape-Sequenz im Ausgabestring beibehalten (da sie Teil der URI-Syntax sind):

; / ? : @ & = + $ , #

Parameter

Name Typ Default Beschreibung
$encodedURI Pflicht string Ein vollständiger, kodierter Uniform Resource Identifier.

Rückgabewert

Typ
string
Beschreibung
Ein neuer String, der die unkodierte Version des gegebenen kodierten Uniform Resource Identifier (URI) darstellt.

Beispiele

Dekodieren einer kyrillischen URL

decodeURI(
  "https://developer.mozilla.org/ru/docs/JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B",
);
// "https://developer.mozilla.org/ru/docs/JavaScript_шеллы"

decodeURI() vs. decodeURIComponent()

decodeURI(
  "https://developer.mozilla.org/docs/JavaScript%3A%20a_scripting_language",
);
// "https://developer.mozilla.org/docs/JavaScript%3A a_scripting_language"

decodeURIComponent(
  "https://developer.mozilla.org/docs/JavaScript%3A%20a_scripting_language",
);
// "https://developer.mozilla.org/docs/JavaScript: a_scripting_language"

Fehler abfangen

try {
  const a = decodeURI("%E0%A4%A");
} catch (e) {
  console.error(e);
}

// URIError: malformed URI sequence

// Wichtig · Fallstricke

Wirft einen URIError, wenn encodedURI ein % enthält, dem nicht zwei hexadezimale Ziffern folgen, oder wenn die Escape-Sequenz kein gültiges UTF-8-Zeichen kodiert.