Salt la conținut

Codor / Decodor

Codificați și decodați Base64, URL-uri și entități HTML și convertiți baze numerice.

Rulează în browser. Nimic nu este încărcat.

Rulează în browser; nimic nu este încărcat. Rezultatul se actualizează pe măsură ce tastați.
sau trageți unul aici. Fișierul este citit în browserul dumneavoastră și nu este încărcat niciodată.

Despre acest instrument

Codor / Decodor înseamnă patru convertoare sub un singur comutator de mod: Base64, percent-encoding, entități HTML și baze numerice. Base64 codează octeții UTF-8 ai textului dumneavoastră și poate scrie alfabetul sigur pentru URL din RFC 4648 secțiunea 5 (- și _, fără padding), în timp ce decodorul acceptă oricare dintre alfabete; percent-encoding apelează encodeURIComponent sau encodeURI ale browserului, care implementează seturile nerezervate și rezervate din RFC 3986; modul entități escapează cele cinci caractere care contează în markup - ampersand, mai mic decât, mai mare decât, ghilimele duble și apostrof - și poate scrie în plus fiecare caracter non-ASCII ca referință numerică; convertorul de baze folosește BigInt, așa că o valoare de orice dimensiune se convertește între bazele 2, 8, 10, 16 și 36 fără rotunjire. Convertește, nu protejează - Base64 este o codare, nu o criptare, iar escaparea entităților aici nu înlocuiește escaparea din șablonul care vă construiește pagina. Funcționează pe text pe care îl lipiți: nu există încărcare de fișiere și nu face hash, nu semnează și nu decodează JWT-uri.

Fiecare mod înseamnă aritmetică și lucru cu șiruri făcute în browserul dumneavoastră: TextEncoder și TextDecoder pentru UTF-8, btoa și atob pentru Base64, encodeURIComponent, encodeURI și decodeURIComponent proprii browserului pentru percent-encoding și BigInt pentru convertorul de baze. Nimic din ce lipiți nu este trimis către API-ul XGM, scris în URL sau salvat în acest browser - adresa păstrează doar modul, ca ?mode=url, ?mode=html sau ?mode=base, Base64 fiind modul implicit care nu poartă niciun parametru. Rezultatul se actualizează pe măsură ce tastați, iar copierea, descărcarea și exportul JSON sunt produse din ce este deja pe ecran. Singura cerere pe care această pagină o face de la sine este evenimentul de vizualizare a paginii trimis după ce acceptați analiza, care înregistrează calea și numele instrumentului și niciodată ce ați introdus. Setul de caractere ales pentru decodarea Base64 este predat direct propriului TextDecoder al browserului, așa că și payload-urile ISO-8859 și Windows-1252 sunt decodate în pagină, iar fișierul oferit atunci când rezultatul este binar este construit din tabloul de octeți aflat deja pe ecran.

Cum se folosește

  1. Deschideți instrumentul Codor / Decodor.
  2. Lipiți sau tastați datele pe care vreți să le inspectați.
  3. Citiți rezultatul, calculat în browser; datele nu sunt trimise către XGM.
  4. Copiați rezultatul doar după ce ați verificat că arată corect.
  5. Folosiți instrumentele XGM înrudite dacă aveți nevoie de o imagine de diagnostic mai largă.

Întrebări frecvente

De ce Base64-ul meu s-a decodat într-un dump hexazecimal în loc de text?

Datele introduse s-au decodat în octeți, dar acei octeți nu sunt UTF-8 valid, așa că nu există text de afișat. Asta obțineți când payload-ul este o imagine, un bloc comprimat, text UTF-16 sau un șir trunchiat: rezultatul raportează numărul de octeți și afișează primii 256 de octeți în hexazecimal. Decodarea este strictă intenționat - înlocuirea tăcută a secvențelor invalide cu U+FFFD ar ascunde faptul că datele nu sunt text.

Pot decoda Base64url sau Base64 care și-a pierdut padding-ul?

Da. Spațiile albe și rupturile de rând sunt eliminate, - și _ sunt transformate înapoi în + și /, iar padding-ul = lipsă este restabilit înainte de decodare, așa că atât alfabetul standard din RFC 4648 secțiunea 4, cât și cel sigur pentru URL din secțiunea 5 funcționează în aceeași casetă. Singura lungime respinsă este cea cu un caracter peste un multiplu de patru, pe care niciun șir Base64 valid nu o poate avea. La codificare, opțiunea sigură pentru URL scrie - și _ și lasă padding-ul deoparte, ceea ce așteaptă JWT-urile și parametrii din URL.

Ar trebui să folosesc encodeURIComponent sau encodeURI?

Folosiți opțiunea pentru componentă când codificați o singură bucată dintr-un URL - o valoare de interogare, un segment de cale - pentru că escapează și caracterele rezervate din RFC 3986 : / ? # & = care altfel v-ar încheia valoarea prea devreme. Folosiți opțiunea pentru URL întreg doar pe o adresă deja asamblată, fiindcă lasă intenționat acele caractere intacte. Codificarea unei valori cu opțiunea pentru URL întreg este eroarea clasică: un & din interiorul ei împarte tăcut un parametru în doi. Decodarea folosește decodeURIComponent în ambele cazuri.

De ce decodarea transformă + în spațiu?

Pentru că opțiunea „Tratează + ca spațiu” este activă, iar ea înlocuiește + înainte de decodare. Percent-encoding în sine nu are o astfel de regulă - + înseamnă un plus literal în RFC 3986 - convenția vine din serializarea application/x-www-form-urlencoded folosită de formularele HTML și de șirurile de interogare. Dezactivați opțiunea când decodați o cale, un payload Base64 sau orice altceva în care plusul este date reale. Un % care nu este urmat de două cifre hexazecimale, sau un escape care nu este UTF-8 valid, este raportat împreună cu fragmentul problematic.

Ce entități HTML cunoaște de fapt decodorul?

Fiecare referință numerică, atât zecimală (é), cât și hexazecimală (é), plus aproximativ treizeci dintre cele uzuale cu nume: amp, lt, gt, quot, apos, nbsp, copy, reg, trade, liniile și ghilimelele, precum și semnele monetare și tipografice. Orice altă entitate cu nume este lăsată în text exact așa cum ați lipit-o și este numărată în nota de sub rezultat, astfel încât un nume nerezolvat rămâne vizibil, nu pierdut. Codarea merge în sens invers, cu cele cinci caractere care contează în markup, scriind ' ca referința numerică ', iar trecerea opțională pentru non-ASCII transformă fiecare caracter rămas într-o referință zecimală.

Citiți ghidul complet Codor / Decodor (în engleză)