Convertor gratuit

Codificator URL / Decodor

Codați și decodați URL-urile și componentele URI instantaneu în browser. Gratuit, privat și nu necesită încărcare.

Sau

Despre acest instrument

Codificarea URL (formal codificare procentuală, definită în RFC 3986) traduce caracterele care au o semnificație specială în adrese URL - spații, bare oblice, ampersand, semne hash - într-o formă sigură folosind semne procentuale urmate de cifre hexadecimale. Caracterul de spațiu devine %20 (sau + în contexte codificate în formă), ampersand devine %26 și așa mai departe. Fără această codificare, caracterele speciale ar fi interpretate ca sintaxă URL mai degrabă decât ca date literale, rupând adresa URL sau provocând un comportament neintenționat.

Există două codificări înrudite, dar distincte. Codificarea standard a componentei URL folosește %-escapes pentru tot ce se află în afara setului de caractere nerezervat: A-Z, a-z, 0-9, cratima, liniuță de subliniere, punct, tilde. Varianta codificată în formă (application/x-www-form-urlencoded) tratează în plus spațiile ca semne plus și utilizează reguli diferite pentru alte caractere. EncodeURIComponentul JavaScript folosește codarea strictă a componentelor; encodeURI folosește o formă mai permisivă care păstrează caracterele structurii URL.

Acest instrument oferă atât codificare, cât și decodare. Modul de codificare include fiecare caracter care necesită evadare în format %HH; modul de decodare inversează transformarea. Ambele rulează în întregime în browser-ul dvs. folosind funcțiile de URL JavaScript încorporate, deci nu sunt trimise date nicăieri.

De ce să codificați sau să decodați adresele URL

De fiecare dată când datele sunt incluse într-o adresă URL - parametrii șirului de interogare, segmente de cale care conțin intrarea utilizatorului, ținte de redirecționare - este necesară o codificare adecvată. Necodificarea produce adrese URL care se întrerup atunci când apar caractere speciale, scurge limitele parametrilor pentru șirurile de interogare (transformând &x=1 într-un parametru separat) sau sunt blocate de serverele web ca solicitări incorecte.

Decodarea este invers: extragerea datelor originale dintr-o adresă URL codificată. Barele de adrese ale browserului arată adesea adresele URL în formă codificată; decodificarea dezvăluie ceea ce a fost de fapt intenționat. Înregistrarea, depanarea și analiza de securitate beneficiază toate de adresele URL decodificate care arată parametrii și căile inițiale.

Cum se utilizează

Lipiți un șir, alegeți direcția.

  1. Alegeți codificare sau decodare: Codificarea include caractere nesigure în format %HH. Decodificarea inversă %HH scapă înapoi la caractere literale.
  2. Adăugați text de intrare: Lipiți șirul pentru a codifica sau decoda. Pentru codificare, aceasta este de obicei o valoare literală cu spații, caractere speciale sau conținut non-ASCII. Pentru decodare, aceasta este o componentă URL sau URL care conține %HH escape.
  3. Convertiți: Instrumentul aplică encodeURIComponent sau decodeURIComponent. Ieșirea codificată poate fi încorporată în siguranță într-o adresă URL; ieșirea decodificată este valoarea literală inițială.
  4. Copiați sau descărcați: Utilizați rezultatul oriunde aveți nevoie. Valorile codificate se potrivesc în adrese URL; valorile decodificate dezvăluie datele originale.

Cazuri comune de utilizare

Detalii tehnice

encodeURIComponent codifică fiecare caracter din afara setului nerezervat [A-Za-z0-9-_.~]. Spațiile devin %20, plus semnele devin %2B, semnele egal devin %3D și așa mai departe. Caracterele din afara ASCII sunt mai întâi codificate în UTF-8 și apoi fiecare octet este %-escaped.

encodeURI este mai permisiv și este destinat mai degrabă adreselor URL complete decât componentelor. Nu scapă /, ?, &, =, # și alte câteva, deoarece acele caractere au semnificație de sintaxă URL. Pentru încorporarea datelor utilizatorului într-o adresă URL, encodeURIComponent este aproape întotdeauna alegerea potrivită.

decodeURIComponent inversează %-escapes, validând că fiecare escape este bine format și că octeții rezultați formează UTF-8 valid. Intrarea greșită generează o eroare în loc să producă gunoi.

Cele mai bune practici

Întrebări frecvente

Ce caractere au nevoie de codificare URL?
Caracterele rezervate (&, =, ?, #, /, :, @) și caracterele nesigure (spații, <, >, {, }, |, ^, ~, [, ], `) trebuie să fie codificate. Caracterele alfanumerice și -_.~ sunt sigure și nu necesită codare.
Care este diferența dintre encodeURI și encodeURIComponent?
encodeURI codifică o adresă URL completă, dar păstrează caracterele rezervate (://?#). encodeURIComponent codifică totul, cu excepția -_.!~*'() — utilizați-l pentru valorile parametrilor de interogare. Acest instrument oferă ambele moduri.
Cum sunt codificate spațiile în adrese URL?
Spațiile pot fi codificate ca %20 (codare procentuală standard) sau + (codare formular). %20 este corect pentru căile URL, în timp ce + este folosit în șirurile de interogări din formularele HTML. Acest instrument folosește %20 în mod implicit.
Pot codifica caracterele Unicode?
Da. Caracterele Unicode sunt mai întâi codificate în UTF-8 octeți, apoi fiecare octet este codificat în procente. De exemplu, „日” devine %E6%97%A5 (trei octeți UTF-8, fiecare codificat procentual).
Ar trebui să folosesc encodeURI sau encodeURIComponent?
Aproape întotdeauna codificăURIComponent. Utilizați codulURI numai dacă aveți o adresă URL completă și doriți să-i păstrați structura - de obicei rar, deoarece oricum creați adrese URL din componente.
Sunt datele mele încărcate pe un server?
Nu. Codificarea și decodificarea adreselor URL au loc în întregime în browserul dvs.
Se ocupă de emoji Unicode?
Da. Emoji-urile sunt secvențe UTF-8 multi-octeți; codificatorul produce un lanț de %-octeți scăpați pe care decodoarele reasamblați corect înapoi la emoji-ul original.
Ce se întâmplă dacă intrarea mea are șiruri cu aspect %HH care nu sunt de fapt codificate?
Codificarea transformă fiecare % în %25, apoi reaplică evadarea pentru restul. Decodificarea intrărilor stricte aruncă erori la evadările malformate; șirurile cu aspect ambiguu pot decoda incorect.