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
encodeURIvaloarea 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ă.