Unealtă gratuită pentru programatori

URL encode și decode online

Codezi un text pentru a-l pune într-o adresă (de exemplu ă devine %C4%83) sau decodezi un link ilizibil. Unealta descompune și adresa în protocol, gazdă, cale, parametri și fragment.

Exemple de codare URL

Variante gata făcute: copiază codul direct sau deschide exemplul în generator și modifică-l după nevoie.

Valoarea unui parametru encodeURIComponent codează și & și spațiul, ca valoarea să nu rupă adresa.
encodeURIComponent("mașini de spălat & uscătoare")
// ma%C8%99ini%20de%20sp%C4%83lat%20%26%20usc%C4%83toare
Link decodat Un link copiat din bara de adrese devine citibil; %3A este două puncte.
https://www.exemplu.ro/cauta?q=ma%C8%99ini%20de%20sp%C4%83lat&pret_max=2000&sort=pret%3Aasc
→ https://www.exemplu.ro/cauta?q=mașini de spălat&pret_max=2000&sort=pret:asc
Date de formular Formularele HTML trimit spațiul ca + și codează și ! ( ).
Bun%C4%83+ziua%21+Am+o+%C3%AEntrebare+%28urgent%C4%83%29.
Parametri construiți corect în JavaScript URLSearchParams face codarea singur; nu mai lipești șiruri de mână.
const url = new URL("https://www.exemplu.ro/cauta");
url.searchParams.set("q", "mașini de spălat");
url.searchParams.set("pagina", 2);
url.toString();
// https://www.exemplu.ro/cauta?q=ma%C8%99ini+de+sp%C4%83lat&pagina=2

Cum folosești unealta

  1. Alege Operația: Codează componentă (pentru valoarea unui parametru), Codează URL întreg sau Decodează.
  2. Scrie textul sau lipește adresa în câmpul Textul sau adresa.
  3. Bifează Format de formular dacă spațiul trebuie să fie +, ca în datele trimise de formularele HTML.
  4. Copiază rezultatul. Dacă textul e o adresă, tabelul arată fiecare parametru decodat. Totul rulează în browser.

Componentă sau URL întreg

encodeURIComponent codează tot ce are rol special într-o adresă (/ ? & = #), deci e varianta corectă pentru valoarea unui parametru. encodeURI lasă aceste caractere neatinse, ca adresa să funcționeze în continuare.

encodeURIComponent("ușă & fereastră")   // u%C8%99%C4%83%20%26%20fereastr%C4%83
encodeURI("https://exemplu.ro/căutare?q=ușă")
// https://exemplu.ro/c%C4%83utare?q=u%C8%99%C4%83

Fiecare literă cu diacritice devine doi octeți UTF-8: ș este %C8%99, ă este %C4%83.

Echivalentele în alte limbaje

// PHP
rawurlencode("ușă și");      // u%C8%99%C4%83%20%C8%99i (spațiul = %20)
urlencode("ușă și");         // u%C8%99%C4%83+%C8%99i  (spațiul = +)

# Python
from urllib.parse import quote, quote_plus, unquote
quote("ușă și", safe="")     # ca encodeURIComponent
quote_plus("ușă și")         # spațiul = +

Erori la decodare

Un % care nu e urmat de două cifre hexazecimale (de exemplu „50%”) sau octeți care nu formează UTF-8 valid (text codat odinioară în Windows-1250) fac decodeURIComponent să arunce o eroare. Unealta arată poziția fiecărei probleme și decodează restul textului.

Întrebări frecvente

Când e spațiul + și când %20?

În datele formularelor (application/x-www-form-urlencoded, adică partea de după ? trimisă de un formular) spațiul este +. În restul adresei, de exemplu în cale, spațiul se scrie %20, iar + înseamnă chiar semnul plus.

Pot pune diacritice direct în adresă?

Browserele le afișează frumos, dar le trimit codate. În linkuri și în cod e mai sigur să folosești forma codată.