Codifica

Gzip/Deflate ↔ Base64

Compressione del testo in Gzip o Deflate con codifica Base64 del risultato — e viceversa. Funziona tramite l'API Compression Streams direttamente nel browser.

Base64 by itself doesn't compress anything — quite the opposite, it grows the size by about 33%. To send large text compactly through a text-only channel, it's first compressed with Gzip or Deflate, and only then is the result Base64-encoded.

How to use it

Common uses

Things to keep in mind

Compression only pays off on sufficiently large, compressible text — on short strings the Gzip header overhead plus the Base64 expansion can actually make the result bigger.

Deflate skips Gzip's headers, so its output is more compact, but the format is less self-describing: the receiving side needs to know in advance that it's Deflate specifically.

Articolo su questo strumento: Gzip + Base64: comprimere dati per trasmetterli come testo

Domande frequenti

Qual è la differenza tra Gzip e Deflate qui?

Gzip racchiude i dati compressi in un header e un checksum CRC finale, mentre Deflate è il flusso di compressione grezzo senza quell'involucro. Dati compressi con un formato non possono essere decodificati scegliendo l'altro — assicurati che il formato selezionato corrisponda a quello usato per la compressione.

Perché devo codificare in Base64 i dati compressi?

L'output di Gzip/Deflate è binario grezzo, che non sopravvive bene in contesti testuali come URL, JSON o file di configurazione. Codificarlo in Base64 trasforma quei dati binari in testo ASCII sicuro e copiabile.

Perché lo strumento dice che il mio browser non lo supporta?

Questo strumento si basa sulla Compression Streams API nativa del browser (CompressionStream/DecompressionStream), non disponibile in tutti i browser o versioni datate — nessun dato viene inviato a un server, ma se non è supportata lo strumento semplicemente non può funzionare.

Perché la decompressione a volte dà un errore «invalid header»?

La causa più comune è un formato sbagliato: i dati sono stati compressi come Deflate «grezzo» senza header, ma vengono decompressi come Gzip (che si aspetta un proprio header e CRC-32), o viceversa. Prova a cambiare il formato nelle impostazioni dello strumento.

La compressione riduce sempre la dimensione finale?

No. Su stringhe molto corte, il sovraccarico degli header Gzip e l'aumento dovuto a Base64 possono superare il guadagno della compressione — questo approccio ha senso solo per dati testuali sufficientemente grandi e comprimibili.

Articoli: Codifica

Base64: a cosa serve la codifica e come funziona

Come Base64 trasforma dati binari in testo ASCII e quando serve davvero.

Base32: come si differenzia da Base64 e quando è più comodo

L'alfabeto di Base32, insensibile a maiuscole/minuscole, e i casi in cui è più comodo di Base64.

URL Encode/Decode: il percent-encoding nei link

Come i caratteri speciali negli indirizzi e nei parametri diventano sequenze %XX.

HTML Entities: come mostrare caratteri speciali in sicurezza

Perché i caratteri < > & vanno escapati e come questo evita di rompere il markup.

JWT: struttura del token e cosa significa "decodificare" un JWT

Header, payload e signature di un JWT, e perché decodificare non equivale a verificare la firma.

Unicode Escape: cosa significano le sequenze \uXXXX

Da dove vengono sequenze come \u0041 in JSON e nelle stringhe JS, e cosa significano.

ROT13 e il cifrario di Cesare: semplice sostituzione di caratteri

Perché uno scorrimento di 13 lettere rende ROT13 auto-inverso, e perché si usa ancora oggi.

Punycode: come funzionano i domini internazionalizzati nel DNS

Come un dominio con caratteri non latini diventa una forma ASCII con il prefisso xn--.

Il codice Morse: come il testo diventa punti e linee

Il principio di codifica delle lettere in punti e linee, e dove si usa ancora oggi il Morse.

Data URI: quando incorporare immagini direttamente nel codice

Come un Data URI incorpora il contenuto di un file direttamente in HTML o CSS, e quando conviene.

XML Entities: escapare i caratteri nei documenti XML

Le cinque entity XML obbligatorie senza le quali il documento si rompe durante il parsing.