decodeURI()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die Funktion decodeURI() decodiert einen zuvor durch encodeURI() oder eine ähnliche Routine erstellten Uniform Resource Identifier (URI).

Probieren Sie es aus

const uri = "https://mozilla.org/?x=шеллы";
const encoded = encodeURI(uri);
console.log(encoded);
// Expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"

try {
  console.log(decodeURI(encoded));
  // Expected output: "https://mozilla.org/?x=шеллы"
} catch (e) {
  // Catches a malformed URI
  console.error(e);
}

Syntax

js
decodeURI(encodedURI)

Parameter

encodedURI

Ein vollständiger, kodierter Uniform Resource Identifier.

Rückgabewert

Ein neuer String, der die dekodierte Version des angegebenen kodierten Uniform Resource Identifier (URI) darstellt.

Ausnahmen

URIError

Wird ausgelöst, wenn encodedURI ein % enthält, dem nicht zwei hexadezimale Ziffern folgen, oder wenn die Escape-Sequenz keinen gültigen UTF-8-Charakter kodiert.

Beschreibung

decodeURI() ist eine Funktionseigenschaft des globalen Objekts.

Die Funktion decodeURI() decodiert den URI, indem jede Escape-Sequenz in der Form %XX als eine UTF-8-Code-Einheit (ein Byte) behandelt wird. In UTF-8 gibt die Anzahl der führenden 1-Bits im ersten Byte – die 0 (für ein Byte ASCII-Zeichen), 2, 3 oder 4 sein kann – die Anzahl der Bytes im Zeichen an. Durch das Lesen der ersten Escape-Sequenz kann decodeURI() bestimmen, wie viele weitere Escape-Sequenzen verarbeitet werden müssen. Wenn decodeURI() nicht die erwartete Anzahl an Sequenzen findet oder wenn die Escape-Sequenzen keinen gültigen UTF-8-Charakter kodieren, wird ein URIError ausgelöst.

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

; / ? : @ & = + $ , #

Beispiele

Dekodierung eines kyrillischen URLs

js
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() nimmt an, dass die Eingabe ein vollständiger URI ist, und dekodiert daher keine Zeichen, die Teil der URI-Syntax sind.

js
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

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

// URIError: malformed URI sequence

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-decodeuri-encodeduri

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
decodeURI

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch