# Codifica / Decodifica

URL: https://discuvr.org/encode-decode/?hl=it
Last updated: 2026-11-07
MCP tool: `encode_decode_text`

Codifica o decodifica Base64, Base64URL, URL (percentuale), entità HTML ed esadecimale mentre scrivi. UTF-8 completo, padding mancante segnalato, nulla salvato.

Un token in un log, una query string in un redirect, un'email piena di &amp;: il testo codificato salta fuori ovunque al lavoro. Incollalo qui, scegli il formato e vedi il risultato codificato o decodificato mentre scrivi.

## Cosa fa

- Base64, Base64URL (stile JWT, senza padding), codifica percentuale degli URL, entità HTML ed esadecimale.
- UTF-8 completo: lettere accentate, hindi, cinese ed emoji sopravvivono all'andata e ritorno.
- Il padding Base64 mancante viene aggiunto e segnalato, mai corretto in silenzio.
- I byte che non sono testo vengono mostrati in esadecimale invece che come caratteri incomprensibili.
- Un clic per usare l'output come nuovo input e invertire la direzione.

## Come funziona

1. Scegli il formato e se codificare o decodificare.
2. Incolla il testo: il risultato si aggiorna mentre scrivi.
3. Copia l'output o usalo come input successivo.

## Esempio pratico: leggere un JWT

Un JSON Web Token è formato da tre parti Base64URL unite da punti: header, payload e firma. Incolla la parte centrale, scegli Base64URL e decodifica: vedrai i claim JSON, come l'id utente e la scadenza exp (un timestamp Unix leggibile con il Convertitore timestamp Unix). Decodificare non è verificare: chiunque può leggere il payload di un JWT, e solo il controllo della firma sul server dimostra che non è stato modificato.

## I casi che creano problemi al lavoro

Un Base64 a cui è stato tolto il padding, cosa che alcuni sistemi fanno per risparmiare spazio, fallisce nei decoder rigorosi; questo strumento aggiunge i segni = mancanti e te lo dice. Per molti server un + in una query string significa uno spazio, quindi un valore Base64 incollato in un link senza codifica arriva danneggiato; codificalo come componente URL o usa Base64URL. Il testo codificato due volte compare come %2520 o &amp;amp; e va decodificato due volte.

## Cosa accetta ogni decodificatore

La decodifica Base64 ignora spazi e a capo, quindi un valore spezzato su più righe, come in un'e-mail, si decodifica così come è stato incollato. Base64URL accetta anche + e /, mentre il Base64 normale rifiuta - e _, quindi una parte di un JWT richiede l'opzione Base64URL. La decodifica esadecimale salta spazi, due punti, virgole, trattini e prefissi 0x, quindi 48:65:6c:6c:6f e 0x48 0x65 funzionano entrambi. La decodifica URL trasforma + in uno spazio, quindi un vero segno più deve arrivare come %2B. La codifica HTML esegue l'escape dei cinque caratteri & < > " e '; la decodifica HTML riconosce tutte le entità con nome di HTML5, come &nbsp; e &hellip;, e quelle numeriche come &#8377; per il simbolo della rupia.

## Esempi pratici: cosa produce ogni formato

La codifica URL di questo strumento codifica un solo valore, per esempio un parametro di query, quindi ogni carattere riservato viene escapato: https://example.com/a b?x=1&y=2 diventa https%3A%2F%2Fexample.com%2Fa%20b%3Fx%3D1%26y%3D2. Codifica solo il valore che inserisci in un link, mai il link intero. Il testo fuori dall'ASCII viene codificato come i suoi byte UTF-8: café ₹ diventa caf%C3%A9%20%E2%82%B9, e l'esadecimale mostra gli stessi byte, é come c3 a9 e ₹ come e2 82 b9. Il Base64 di user:pass è dXNlcjpwYXNz, il valore che porta un header HTTP Basic Authorization (RFC 7617): per questo chiunque veda quell'header può leggere la password.

## Domande

**Perché il testo decodificato mostra caratteri strani come Ã©?**

I byte erano UTF-8 ma da qualche parte sono stati letti come Latin-1 o Windows-1252 prima di essere codificati. Qui la decodifica mostra i byte così come sono; la correzione va fatta nel sistema che li ha prodotti.

**Posso decodificare un intero file?**

Incolla fino a 200.000 caratteri di testo. Per i file binari come le immagini, i byte decodificati vengono mostrati in esadecimale invece di diventare un download.

**Il Base64 è una cifratura?**

No. Il Base64 cambia solo il modo in cui i byte sono scritti, perché passino in sistemi che si aspettano testo semplice. Chiunque può decodificarlo; non usarlo mai per nascondere una password o un segreto.

**Che differenza c'è tra Base64 e Base64URL?**

Base64URL sostituisce "+" e "/" con "-" e "_" e di solito elimina il padding "=", così il risultato è sicuro dentro URL e nomi di file. I JSON Web Token lo usano.

**Il mio testo viene salvato?**

No. Viene convertito e restituito nella stessa richiesta e non viene mai scritto in un database o in un log.

**Perché l'output codificato è diverso da encodeURIComponent di JavaScript?**

Questo strumento escapa anche ! ' ( ) e *, che encodeURIComponent lascia come sono, quindi it's (50%) off! diventa it%27s%20%2850%25%29%20off%21. Le due forme si decodificano nello stesso testo, ed escapare questi caratteri è sempre sicuro dentro un valore di query. Uno spazio diventa %20, non +; la forma con + viene dalla codifica dei moduli HTML, e il decodificatore qui legge entrambe.

**Come codifico o decodifico testo in Base64 dalla riga di comando?**

Su Linux o Mac, echo -n 'Hello, World' | base64 restituisce SGVsbG8sIFdvcmxk, e echo 'SGVsbG8sIFdvcmxk' | base64 --decode lo riporta in testo. Senza -n, echo aggiunge un a capo che viene codificato anch'esso, e ottieni SGVsbG8sIFdvcmxkCg==: il motivo più comune per cui due strumenti non coincidono. In PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World')) codifica e [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIFdvcmxk')) decodifica. Questa pagina codifica esattamente i caratteri che incolli, in UTF-8, senza aggiungere a capo.

**Come decodifico un'immagine in Base64 o un data URI?**

Incolla solo la parte dopo la virgola: in data:image/png;base64,iVBORw0KGgo... è iVBORw0KGgo..., perché il prefisso data:image/png;base64, non è Base64 e la stringa intera viene rifiutata. Scegli Base64 e Decode. I byte che non sono testo vengono mostrati in esadecimale invece che come immagine, il che basta per capire di che file si tratta: un PNG inizia con 89 50 4e 47, un JPEG con ff d8 ff e un file .docx, .xlsx o altro file basato su ZIP intero con 50 4b 03 04. Per vedere l'immagine, incolla il data URI completo nella barra degli indirizzi del browser. L'input arriva a 200.000 caratteri, circa 150.000 byte di file.

**Perché il Base64 è circa un terzo più lungo dell'originale?**

Il Base64 scrive ogni 3 byte come 4 caratteri e completa l'ultimo gruppo con = fino a un multiplo di 4 (RFC 4648), quindi l'output è 4/3 dei byte di input, arrotondato per eccesso. Hello, World sono 12 byte e diventano i 16 caratteri SGVsbG8sIFdvcmxk. Si contano byte UTF-8, non lettere: café ha 4 caratteri ma 5 byte e dà Y2Fmw6k=, e ₹100 ha 6 byte e dà 4oK5MTAw. Gli allegati email crescono un po' di più perché MIME spezza il Base64 in righe di al massimo 76 caratteri (RFC 2045); questa pagina ignora quegli a capo durante la decodifica. Il Base64URL senza padding risparmia solo i segni =.

## Altro in Strumenti per sviluppatori

- [Convertitore di timestamp Unix](https://discuvr.org/timestamp-converter/?hl=it)
- [Creatore di diagrammi di sistema](https://discuvr.org/system-diagram/?hl=it)
- [Formattatore JSON](https://discuvr.org/json-formatter/?hl=it)
- [Formattatore Python](https://discuvr.org/python-formatter/?hl=it)

## Spesso usato con

- [Generatore di Password](https://discuvr.org/password-generator/?hl=it)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
