CodeKitHub
Instrumente de codificare

Encoder / Decoder URL Online

Ultima actualizare:

Codifică text cu procent (percent-encoding) pentru a-l folosi în siguranță în URL-uri, sau decodifică un URL codificat înapoi în formă lizibilă. Alege modul componentă (codifică tot, pentru valorile parametrilor de query) sau modul URL complet (păstrează intactă structura :// ? &). Rulează integral în browserul tău.

Ce este acest instrument?

Codificarea URL (percent encoding) înlocuiește caracterele nepermise în URL-uri cu un % urmat de valoarea lor în hexazecimal — un spațiu devine %20, iar 你 devine %E4%BD%A0. Fără asta, caractere precum spațiile, &, ? și textul non-ASCII ar strica structura URL-ului sau ar fi interpretate greșit de servere.

Există două nevoi comune, iar acest instrument le acoperă pe amândouă: codificarea unei valori care merge într-un parametru de query (mod componentă — codifică și / ? & =) și codificarea unui URL întreg păstrându-i structura (mod URL complet — lasă :// ? & neatinse).

O particularitate istorică utilă de știut: un spațiu este, corect, %20 conform standardului URL (RFC 3986), dar trimiterile de formulare HTML l-au codificat tradițional ca semn plus — de aceea vezi atât q=hello%20world, cât și q=hello+world în practică, și de aceea decodificarea datelor de formular are uneori nevoie ca + să fie tratat separat.

De ce să-l folosești?

  • Construiește query string-uri în siguranță — inputul utilizatorului cu &, = sau spații nu îți va strica URL-ul.
  • Decodifică URL-uri lungi codificate din loguri, analytics sau lanțuri de redirecționare pentru a vedea ce spun de fapt.
  • Gestionare corectă UTF-8 pentru chineză, emoji și alt text non-ASCII.
  • Două moduri, ca să nu codifici accidental : și / dintr-un URL întreg.
  • Gratuit, instant, fără upload.

Cum se folosește

  1. Lipește textul sau URL-ul în caseta de input.
  2. Alege modul: „Componentă” pentru valori care merg în parametri de query, „URL complet” pentru URL-uri întregi.
  3. Apasă „Codifică” sau „Decodifică”.
  4. Copiază rezultatul.

Exemplu

Intrare

https://example.com/search?q=hello world & 你好

Rezultat

Mod componentă: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Mod URL complet:  https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BD

Modul componentă codifică și caracterele de structură; modul URL complet le păstrează.

Cazuri de utilizare comune

  • Construirea unui URL de partajat unde un termen de căutare sau o valoare de filtru vine de la utilizator și poate conține spații, & sau alte caractere speciale.
  • Decodificarea unui URL lung de urmărire sau redirecționare dintr-un email sau o campanie publicitară, pentru a vedea destinația și parametrii reali înainte de a da click.
  • Depanarea motivului pentru care un parametru de query nu este citit corect de un server — de multe ori vinovat este un caracter rezervat care ar fi trebuit codificat, dar nu a fost.
  • Pregătirea unei valori non-englezești (chineză, japoneză, arabă etc.) pentru a fi folosită într-un query string URL.

encodeURIComponent versus encodeURI, în practică

Acestea corespund direct celor două moduri ale acestui instrument și unor funcții JavaScript reale, deja cunoscute dezvoltatorilor: encodeURIComponent (mod componentă) codifică tot, cu excepția unui set mic de caractere nerezervate, fiind sigur pentru orice valoare individuală introdusă într-un URL — asta folosești pentru un parametru de query, un segment de path sau o valoare de fragment hash. encodeURI (mod URL complet) lasă neatinse caracterele structurale ale URL-ului (:, /, ?, #, &, =), pentru că presupune că codifici un URL complet, deja structurat, nu o valoare brută — folosirea lui pe o singură valoare de parametru ar eșua în a codifica & sau = pe care valoarea le-ar putea conține, cea mai frecventă greșeală atunci când alegi modul greșit.

Caractere rezervate versus nerezervate

Specificația URL (RFC 3986) împarte caracterele în două grupuri: caracterele nerezervate (litere, cifre, - _ . ~) sunt mereu sigure și nu se codifică niciodată, în timp ce caracterele rezervate (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) au semnificație specială în structura URL-ului și trebuie codificate doar când apar ca date literale, nu ca punctuație structurală. Exact de aceea există cele două moduri — modul componentă tratează caracterele rezervate ca date de protejat, modul URL complet le tratează ca structură de păstrat. Înțelegerea acestei distincții este mai utilă decât memorarea când să folosești fiecare mod, pentru că explică de ce același caracter (precum &) este uneori codificat și alteori lăsat neatins, în funcție de rolul pe care îl joacă în URL-ul respectiv.

Întrebări frecvente

Când ar trebui să folosesc modul componentă versus modul URL complet?

Modul componentă (encodeURIComponent) când codifici o singură valoare care merge într-un parametru de query — codifică /, ?, & și = ca să nu poată strica URL-ul. Modul URL complet (encodeURI) când codifici un URL complet — păstrează caracterele structurale ca URL-ul să funcționeze în continuare.

De ce a apărut %20 în loc de + pentru spații?

Amândouă sunt valide în contexte diferite. %20 este codificarea universală cu procent pentru un spațiu; + înseamnă spațiu doar în query string-uri care folosesc formatul mai vechi application/x-www-form-urlencoded. Acest instrument folosește %20, care funcționează peste tot.

De ce decodificarea eșuează cu o eroare?

Inputul conține o secvență procentuală malformată, precum un % neurmat de două cifre hexazecimale. Se întâmplă des când un URL a fost trunchiat sau decodificat de două ori. Corectează sau elimină secvența % defectă.

Ce este dubla codificare?

Codificarea unui text deja codificat: %20 devine %2520 pentru că simbolul % este el însuși codificat ca %25. Este o greșeală comună — dacă output-ul decodificat conține încă coduri %, decodifică-l încă o dată.

Gestionează caractere chinezești și emoji?

Da. Textul este codificat ca octeți UTF-8, deci 你好 devine %E4%BD%A0%E5%A5%BD și se decodifică perfect înapoi — exact comportamentul folosit de browsere.

Instrumente similare