Cum se folosește
- Alegeți Codificare sau Decodificare.
- Alegeți Componentă pentru o singură valoare (de exemplu, un parametru de interogare) sau URL complet pentru o adresă întreagă.
- Tastați sau inserați textul. Rezultatul apare instant în partea dreaptă (sau mai jos, pe telefon).
- Copiați rezultatul sau utilizați opțiunea „Folosiți rezultatul ca intrare” pentru a inversa operația și a verifica conversia dus-întors.
Cum funcționează
URL-urile pot conține doar un set limitat de caractere ASCII. Orice altceva, inclusiv spațiile, literele cu diacritice și emoji-urile, este scris folosind codificarea procentuală: caracterul este convertit în octeți UTF-8, iar fiecare octet devine % urmat de două cifre hexazecimale. Un spațiu devine %20, é devine %C3%A9, iar € devine %E2%82%AC.
Modul Component folosește funcțiile JavaScript encodeURIComponent și decodeURIComponent. El codifică orice caracter cu semnificație specială într-un URL, inclusiv / ? # & = + : și @, astfel încât rezultatul poate fi plasat în siguranță într-o valoare de interogare sau într-un singur segment de cale. Lasă neschimbate doar A–Z, a–z, 0–9 și - _ . ! ~ * ' ( ).
Modul URL complet folosește encodeURI și decodeURI. El presupune că intrarea este deja un URL complet și lasă caracterele rezervate ; , / ? : @ & = + $ # nemodificate, astfel încât adresa continuă să funcționeze. La decodare, decodeURI lasă și codificările acestor caractere rezervate nemodificate: %2F rămâne %2F, deoarece transformarea lui în / ar schimba semnificația URL-ului.
Opțiunea form-data respectă application/x-www-form-urlencoded, formatul folosit de browsere la trimiterea formularelor HTML: un spațiu este scris ca + în loc de %20. La decodare cu această opțiune, fiecare + devine un spațiu; un semn plus real trebuie atunci scris ca %2B.
Intrarea nevalidă nu este niciodată eliminată. Dacă un % nu este urmat de două cifre hexazecimale sau o succesiune de codificări nu formează UTF-8 valid, instrumentul indică unde este problema și păstrează textul, astfel încât să îl puteți corecta.
Exemple
Introducerea unei valori într-un șir de interogare
Pentru a căuta „Rock & Roll” la https://example.com/search?q=…, codifică doar valoarea în modul Component: Rock%20%26%20Roll. Fără codificare, & ar termina parametrul q și ar începe unul nou numit „ Roll”.
Repararea unui URL cu spații și accente
În modul URL complet, https://example.com/menu/crème brûlée.html devine https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Barele oblice și două punctele rămân neschimbate, astfel încât linkul funcționează în continuare.
Citirea datelor de formular înregistrate
Un jurnal de server afișează name=Jane+Doe&city=S%C3%A3o+Paulo. Decodifică-l în modul Component, cu „Tratează + ca spațiu” activat, pentru a citi name=Jane Doe&city=São Paulo.
Întrebări frecvente
Care este diferența dintre encodeURI și encodeURIComponent?
encodeURIComponent codifică caracterele care separă părțile unui URL (/ ? # & = + : @ și altele), deci este destinat unei singure părți a unui URL. encodeURI păstrează acele caractere, fiind destinat unui URL complet. Folosirea encodeURI pentru o valoare de interogare este o greșeală frecventă: un & sau = din interiorul valorii nu ar fi codificat și ar strica șirul de interogare.
Ar trebui ca un spațiu să fie %20 sau +?
În calea unui URL, spațiul este întotdeauna %20. Într-un șir de interogare apar ambele: %20 este valid peste tot, iar + înseamnă spațiu doar în datele codificate ca formular (application/x-www-form-urlencoded), modul în care formularele HTML și multe framework-uri de server citesc șirurile de interogare. Dacă nu sunteți sigur, folosiți %20.
De ce primesc o eroare la decodare?
Decodarea eșuează atunci când un semn % nu este urmat de două cifre hexazecimale (de exemplu „50% off”) sau când octeții codificați nu formează un șir UTF-8 valid, ceea ce înseamnă de obicei că textul a fost codificat cu un set de caractere mai vechi, cum ar fi Latin-1 (é ca %E9 în loc de %C3%A9). Mesajul de eroare indică poziția problemei.
De ce nu s-a transformat %2F într-o bară oblică în modul URL complet?
decodeURI păstrează intenționat codificările caracterelor rezervate, cum ar fi / ? # & și =, deoarece decodarea lor ar putea schimba modul în care URL-ul este împărțit în părți. Folosiți modul Componentă pentru a decoda fiecare secvență.
Ce caractere nu sunt codificate niciodată?
Ambele moduri lasă neschimbate caracterele A–Z, a–z, 0–9 și - _ . ! ~ * ' ( ). Modul URL complet lasă în plus neschimbate caracterele ; , / ? : @ & = + $ și #.
Confidențialitate
Codificarea și decodificarea rulează integral în browser, folosind funcțiile JavaScript încorporate. Textele și URL-urile introduse nu sunt încărcate, stocate sau incluse în analize.