Codificator / Decodificator URL
Codificați sau decodificați URL-uri și șiruri de interogare.
Ce este codificarea URL?
Codificarea URL (numită și codificare procentuală) este mecanismul de conversie a caracterelor care nu sunt permise într-un URL într-un format hexazecimal sigur. Fiecare caracter nesigur este înlocuit cu un semn de procent urmat de două cifre hex care reprezintă codul ASCII al acestuia. De exemplu, un spațiu devine %20, ampersand-ul devine %26 și diez-ul devine %23.
URL-urile pot conține doar un set limitat de caractere definit de RFC 3986: litere (A–Z, a–z), cifre (0–9) și câteva caractere speciale (- _ . ~ ! * ' ( )). Orice alt caracter — inclusiv spații, litere non-ASCII și caractere rezervate precum & = ? # — trebuie să fie codificat procentual înainte de a fi inclus într-un URL.
Când aveți nevoie să codificați un URL?
- La transmiterea de caractere speciale în parametrii șirului de interogare (de exemplu, ?q=hello%20world).
- La codificarea datelor de formular trimise prin HTTP POST cu tipul de conținut application/x-www-form-urlencoded.
- La construirea programatică a URL-urilor de cereri API cu input furnizat de utilizator.
- La includerea URL-urilor în alte URL-uri (de exemplu, parametrii de redirecționare).
- La includerea caracterelor Unicode (litere accentuate, emoji, caractere CJK) în URL-uri.
Codificare vs. decodificare
Codificarea convertește textul simplu într-un șir sigur pentru URL, înlocuind caracterele nesigure cu echivalentele lor codificate procentual. Decodificarea inversează acest proces, convertind secvențele codificate procentual înapoi la caracterele lor originale. Instrumentul permite comutarea între direcțiile de codificare și decodificare cu un singur clic.
Cum se folosește acest instrument
Lipiți sau introduceți text în câmpul de intrare. Selectați modul de codificare sau decodificare. Ieșirea se actualizează instant. Faceți clic pe butonul de interschimbare pentru a inversa direcția folosind ieșirea curentă ca nouă intrare. Acest lucru este util când trebuie să codificați un șir și apoi să verificați rezultatul decodificându-l înapoi.
Caractere care sunt codificate
Instrumentul folosește funcția encodeURIComponent() din JavaScript, care codifică toate caracterele cu excepția: A–Z, a–z, 0–9 și caracterele nerezervate - _ . ! ~ * ' ( ). Aceasta este codificarea corectă pentru valorile parametrilor de interogare și datele de formular. Funcția similară encodeURI() este mai puțin agresivă și păstrează caractere ca : / ? # care au semnificație în structura URL.
Greșeli frecvente la codificarea URL
Cea mai frecventă greșeală este dubla codificare — codificarea unui șir care este deja codificat, transformând %20 în %2520. Aceasta strică URL-urile și derutează serverele. Verificați întotdeauna dacă intrarea este deja codificată înainte de a aplica codificarea. O altă eroare este folosirea encodeURI() când encodeURIComponent() este necesar, lăsând & și = necodificate în valorile parametrilor.
Necodificarea inputului utilizatorului înainte de a-l insera în URL-uri este o vulnerabilitate de securitate. Inputul necodificat al utilizatorului poate injecta parametri de interogare suplimentari, poate sparge parsarea URL-ului sau poate permite atacuri de injecție. Codificați întotdeauna valorile furnizate de utilizator la construirea programatică a URL-urilor.
Sfaturi practice
În dezvoltarea web, majoritatea framework-urilor gestionează automat codificarea URL în trimiteri de formulare și biblioteci client HTTP. Codificarea manuală este necesară de obicei la construirea dinamică a URL-urilor în JavaScript, la transmiterea datelor în fragmente URL sau la depanarea apelurilor API care includ caractere speciale.
Întrebări frecvente
Care este diferența dintre %20 și + pentru spații?
Ambele reprezintă spații, dar în contexte diferite. %20 este codificarea URL standard pentru spații și funcționează oriunde. Semnul + reprezintă spații doar în șiruri de interogare care folosesc formatul application/x-www-form-urlencoded (trimiteri de formulare HTML). Când nu sunteți sigur, folosiți %20.
Trebuie să codific caracterele UTF-8?
Da. Caracterele non-ASCII (litere accentuate, emoji, caractere chinezești etc.) trebuie să fie codificate UTF-8 și apoi codificate procentual pentru includere în URL-uri. Funcția encodeURIComponent() din JavaScript gestionează automat ambii pași, convertind caractere ca é în %C3%A9.