DevBox Strumenti veloci per sviluppatori, senza registrazione

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.

Inserisci questo strumento nel tuo sito

Uso libero, senza altra attribuzione oltre al link già presente nel widget. Gira interamente nel browser di chi visita, quindi non aggiunge carico al tuo server.

Anteprima del widget