TextToolbox Strumenti di testo istantanei

Codificatore/Decodificatore Base64

Scrivi o incolla il testo, poi codifica o decodifica. Unicode ed emoji funzionano correttamente — nulla di ciò che inserisci lascia il tuo browser.

Base64 corretto per Unicode, non solo ASCII

Base64 codifica byte, non caratteri, quindi il primo passo per il testo è trasformare la stringa in byte — ed è esattamente lì che le implementazioni ingenue si rompono. Questo strumento usa TextEncoder per convertire il tuo testo nella sua sequenza di byte UTF-8 corretta prima di codificarla in Base64, e TextDecoder per invertire il processo al ritorno. La scorciatoia comune, il semplice btoa(testo), presume un byte per carattere (Latin-1) e si rompe non appena digiti una lettera accentata, un carattere greco o un'emoji — questo strumento non ha quel problema.

Esempio pratico

Codificando città perché già (tre parole italiane, ognuna con una lettera accentata) si ottiene esattamente:

Y2l0dMOgIHBlcmNow6kgZ2nDoA==

Decodificando quella stringa si ottiene di nuovo città perché già — ogni accento intatto. Passa lo stesso input attraverso btoa() direttamente e non otterrai un errore (à ed é rientrano comunque nell'intervallo Latin-1), ma un Base64 diverso e sbagliato: Y2l0dOAgcGVyY2jpIGdp4A==. Un decoder che si aspetta correttamente UTF-8 fallisce nel leggerlo: è un modo silenzioso di ottenere dati corrotti, più insidioso di un errore esplicito.

Domande frequenti

A cosa serve davvero il Base64?

Base64 trasforma byte arbitrari in una stringa di lettere, cifre, +, / e = — un alfabeto sicuro da inserire ovunque ci si aspetti testo semplice. Questo conta perché molti formati non possono trasportare byte grezzi: la posta elettronica (gli allegati MIME sono codificati 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 rompere la sintassi circostante.

Perché emoji e accenti mandano in errore alcuni encoder Base64?

La funzione nativa di JavaScript btoa() presume che ogni carattere stia in un solo byte Latin-1 (0–255). Per lettere accentate come à o é — che rientrano nell'intervallo Latin-1 — non genera un errore, ma produce byte sbagliati, diversi da quelli UTF-8 corretti: il risultato sembra Base64 valido ma decodifica in testo corrotto. Per caratteri fuori da quell'intervallo, come ☕ o 日本語, btoa() genera invece un errore immediato. Il testo in JavaScript è internamente UTF-16 ma quasi sempre pensato come UTF-8 sulla rete, dove questi caratteri occupano da 2 a 4 byte ciascuno. Questo strumento codifica prima con TextEncoder (trasformando la tua stringa nella sequenza di byte UTF-8 corretta), poi applica Base64 a quei byte — così tutto ciò che btoa() da solo romperebbe o corromperebbe esce corretto.

Base64 è cifratura o una misura di sicurezza?

No — ed è importante saperlo. Base64 è una codifica, non un cifrario. Non ha chiave, non ha segreto, e chiunque può decodificarlo istantaneamente con qualsiasi strumento online o una singola riga di codice. Se vedi credenziali o token 'protetti' da Base64, non sono protetti affatto: considera Base64 puramente come un formato di sicurezza del testo, mai come un modo per nascondere o proteggere informazioni.

Posso codificare file con questo strumento?

Al momento no — questo strumento lavora sul testo che scrivi o incolli, non sul caricamento di file. 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