Codificatore/Decodificatore Base64
Digita o incolla del testo, poi codifica o decodifica. Unicode ed emoji funzionano correttamente — nulla di ciò che inserisci esce dal tuo browser.
Base64 corretto con l'Unicode, non solo ASCII
Il Base64 codifica byte, non caratteri, quindi il primo passo
per il testo è convertire la tua stringa in byte — ed è
esattamente lì che le implementazioni ingenue si rompono.
Questo strumento converte il tuo testo nella sua corretta
sequenza di byte UTF-8 con TextEncoder prima, poi
codifica quei byte in Base64, e inverte il processo con TextDecoder al ritorno:
function toBase64(str) {
return btoa(String.fromCharCode(...new TextEncoder().encode(str)));
}
function fromBase64(b64) {
return new TextDecoder().decode(Uint8Array.from(atob(b64), c => c.charCodeAt(0)));
}
La scorciatoia comune, un semplice btoa(testo),
presume un byte per carattere (Latin-1) e si rompe non appena
digiti una lettera accentata o un emoji — questo strumento non
ha questo problema, perché non passa mai caratteri grezzi a btoa.
Esempio pratico
Codificare perché 😀 (una lettera accentata e un
emoji insieme) produce esattamente:
cGVyY2jDqSDwn5iA
Decodificare quella stringa restituisce perché 😀
esatto — ogni carattere intatto. Fai passare lo stesso input
direttamente per una btoa() nuda e lancerà un
errore, perché 😀 sta fuori dal Latin-1.
Domande frequenti
A cosa serve davvero il Base64?
Il Base64 trasforma byte arbitrari in una stringa composta solo da lettere, cifre, +, / e = — un alfabeto sicuro da inserire ovunque ci si aspetti testo semplice. Questo conta perché molti formati non riescono a trasportare binario grezzo senza rompersi: gli allegati email (MIME li codifica in Base64), i data URI (incorporare una piccola immagine direttamente in CSS o HTML come data:image/png;base64,...), e i campi JSON o XML che devono trasportare contenuto binario senza spezzare la sintassi circostante.
Perché emoji e lettere accentate rompono alcuni strumenti Base64?
La btoa() nuda di JavaScript presume che ogni carattere stia in un solo byte (0–255) e restituisce errore o corrompe tutto ciò che sta fuori da quell'intervallo — così una è accentata o un emoji escono sbagliati. Questo strumento codifica prima con TextEncoder, che converte il tuo testo nella sua corretta sequenza di byte UTF-8, e poi codifica in Base64 quei byte invece dei caratteri grezzi; TextDecoder inverte il processo al ritorno. Per questo perché, città o un emoji vengono codificati e decodificati correttamente qui, a differenza di un btoa(testo) diretto.
Il Base64 è una cifratura o una misura di sicurezza?
No — è importante saperlo. Il Base64 è una codifica, non un cifrario: non ha chiave né segreto, e chiunque può decodificarlo all'istante con qualsiasi strumento online o una riga di codice. Se vedi credenziali o token 'protetti' con Base64, non sono protetti affatto — trattalo esclusivamente come un formato per trasportare testo in modo sicuro, mai come un modo per nascondere o proteggere informazioni.
Posso codificare file con questo strumento?
Al momento no — questo strumento lavora sul testo che digiti o incolli, non su file caricati. Codificare i byte grezzi di un file in Base64 (come fanno i browser internamente per i data URI) è un compito correlato ma diverso, che questo strumento non svolge.