Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

decodeURIComponent()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La fonction decodeURIComponent() permet de décoder un composant d'un identifiant de ressource uniforme (URI) précédemment créé par encodeURIComponent() ou par une méthode similaire.

Exemple interactif

function containsEncodedComponents(x) {
  // exemple ?,=,&,/ etc
  return decodeURI(x) !== decodeURIComponent(x);
}

console.log(containsEncodedComponents("%3Fx%3Dtest")); // ?x=test
// Résultat attendu : true

console.log(containsEncodedComponents("%D1%88%D0%B5%D0%BB%D0%BB%D1%8B")); // шеллы
// Résultat attendu : false

Syntaxe

js
decodeURIComponent(encodedURI)

Paramètres

encodedURI

Un composant encodé d'un identifiant de ressource uniforme (URI).

Valeur de retour

Une nouvelle chaîne de caractères représentant la version décodée du composant d'identifiant de ressource uniforme (URI) encodé fourni.

Exceptions

URIError

Levée si encodedURI contient un % qui n'est pas suivi de deux chiffres hexadécimaux, ou si la séquence d'échappement n'encode pas un caractère UTF-8 valide.

Description

decodeURIComponent() est une propriété fonction de l'objet global.

decodeURIComponent() utilise le même algorithme de décodage que celui décrit dans decodeURI(). Il décode toutes les séquences d'échappement, y compris celles qui ne sont pas créées par encodeURIComponent, comme -.!~*'().

Exemples

Décoder un composant d'URL encodé

js
decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "JavaScript_шеллы"

Gérer les exceptions

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

// Lève une erreur "URIError: malformed URI sequence"

Décoder les paramètres de requête d'une URL

decodeURIComponent() ne peut pas être utilisé directement pour analyser les paramètres de requête d'une URL. Un peu de préparation est nécessaire.

js
function decodeQueryParam(p) {
  return decodeURIComponent(p.replace(/\+/g, " "));
}

decodeQueryParam("requete+de+recherche%20%28correcte%29");
// 'requete de recherche (correcte)'

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-decodeuricomponent-encodeduricomponent

Compatibilité des navigateurs

Voir aussi