encodeURIComponent / decodeURIComponent în JavaScript

URL și codificare Toate browserele, Node.js

Codifică un text ca să poată fi pus sigur într-o adresă URL (spații, diacritice, &, =) și îl decodifică.

Sintaxă
encodeURIComponent(text)
decodeURIComponent(textCodificat)

Ce face encodeURIComponent / decodeURIComponent

Unele caractere au sens special în adrese (&, =, ?, /, #), iar altele nu sunt permise deloc (spațiul, diacriticele). encodeURIComponent le înlocuiește cu secvențe %XX (octeții UTF-8), astfel încât textul să fie o singură bucată a adresei, de exemplu valoarea unui parametru.

decodeURIComponent face operația inversă și aruncă URIError pentru secvențe invalide. Funcțiile vechi escape și unescape sunt învechite: nu tratează corect diacriticele. Pentru parametri, URLSearchParams face codificarea automat.

Parametri

Parametru Descriere
text Textul codificat sau decodificat.

Ce returnează

Un șir de caractere.

Exemple

Exemplul 1: Un parametru de căutare

const cautare = "cărți & reviste";
const adresa = `https://www.exemplu.ro/cauta?q=${encodeURIComponent(cautare)}`;

console.log(adresa);
console.log(decodeURIComponent("c%C4%83r%C8%9Bi%20%26%20reviste"));

Rezultat

https://www.exemplu.ro/cauta?q=c%C4%83r%C8%9Bi%20%26%20reviste
cărți & reviste

Exemplul 2: Față de escape și un text invalid

console.log(encodeURIComponent("Iași"));
console.log(escape("Iași"));
try {
  decodeURIComponent("100%");
} catch (e) {
  console.log(e.name);
}

Rezultat

Ia%C8%99i
Ia%u0219i
URIError

Greșeli frecvente

  • Lipești în adresă un text nelucrat: "?q=" + "a&b" creează doi parametri. Codifică valoarea sau folosește URLSearchParams.
  • Codifici de două ori și în adresă apare %2520 în loc de spațiu.

Comenzi înrudite

  • encodeURI / decodeURI: Codifică o adresă URL completă, păstrând caracterele cu rol de structură (: / ? & = #).
  • URLSearchParams: Citește și construiește parametrii unei adrese (?pagina=2&sort=pret), cu codificare automată.
  • new URL(): Desface o adresă URL în părți (domeniu, cale, parametri) și o construiește corect la loc.