encodeURI / decodeURI în JavaScript

URL și codificare Toate browserele, Node.js

Codifică o adresă URL completă, păstrând caracterele cu rol de structură (: / ? & = #).

Sintaxă
encodeURI(adresaCompleta)
decodeURI(adresaCodificata)

Ce face encodeURI / decodeURI

encodeURI este pentru o adresă întreagă: codifică spațiile și diacriticele, dar lasă neatinse caracterele care despart părțile adresei (: / ? & = #). decodeURI face operația inversă, tot fără să decodifice aceste caractere.

Pentru o bucată din adresă (valoarea unui parametru, un segment de cale) folosește encodeURIComponent; encodeURI ar lăsa un & din valoare să strice adresa.

Parametri

Parametru Descriere
adresa Adresa completă.

Ce returnează

Un șir de caractere.

Exemple

Exemplul 1: Diferența față de encodeURIComponent

const adresa = "https://www.exemplu.ro/orașe/Iași?q=a&b=c";

console.log(encodeURI(adresa));
console.log(encodeURIComponent(adresa));
console.log(decodeURI("https://www.exemplu.ro/ora%C8%99e/Ia%C8%99i"));

Rezultat

https://www.exemplu.ro/ora%C8%99e/Ia%C8%99i?q=a&b=c
https%3A%2F%2Fwww.exemplu.ro%2Fora%C8%99e%2FIa%C8%99i%3Fq%3Da%26b%3Dc
https://www.exemplu.ro/orașe/Iași

Greșeli frecvente

  • Codifici cu encodeURI valoarea unui parametru care conține & sau #. Ele rămân necodificate și strică adresa.

Comenzi înrudite

  • encodeURIComponent / decodeURIComponent: Codifică un text ca să poată fi pus sigur într-o adresă URL (spații, diacritice, &, =) și îl decodifică.
  • new URL(): Desface o adresă URL în părți (domeniu, cale, parametri) și o construiește corect la loc.
  • URLSearchParams: Citește și construiește parametrii unei adrese (?pagina=2&sort=pret), cu codificare automată.