Base64 Encoder and Decoder
A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, safe copy, and clear.
Codifica (testo → Base64)
Decodifica (Base64 → testo)
Istruzioni d'uso
Base64 codifica dati binari in ASCII per facilitarne trasmissione e archiviazione. La dimensione aumenta circa del 33%.
Codifica: converte testo normale in Base64 per una trasmissione più sicura.
Decodifica: ripristina il testo originale dalla stringa Base64.
Funzionalità
- Sicuro UTF-8: gestisce correttamente caratteri non ASCII (utilizza encodeURIComponent/unescape).
- Supporto URL-safe: attiva/disattiva con un clic + / → - _, opzionalmente rimuovi il padding =.
- Pre-elaborazione per decodifica: ignora spazi, ripristina automaticamente URL-safe e completa i = mancanti.
- Interattività in tempo reale: elaborazione automatica all'inserimento, mostra lunghezza e percentuale di crescita.
- Usabilità: copia rapida, riempimento incrociato dei risultati, accessibile da tastiera, ottimizzato per mobile.
- Stile coerente: nessuna classe dark: di Tailwind, completamente basato su DaisyUI.
Cos'è Base64
Base64 è un metodo per codificare dati binari in testo ASCII, spesso utilizzato per trasmettere immagini o contenuti di file attraverso protocolli di testo come JSON, XML e HTTP.
Mappa ogni 3 byte in 4 caratteri stampabili, causando solitamente un aumento del volume del 33% circa.
Base64 standard utilizza A–Z a–z 0–9 + / e il carattere di riempimento =; la variante URL-safe sostituisce + / con - _, per evitare problemi di escape negli URL.
Casi d'uso comuni
- Inserire immagini o piccoli file come Data URI.
- Trasferire dati binari tra frontend e backend (ad esempio crittogrammi, flussi compressi).
- Rendere il testo stampabile, evitando problemi di inconsistenza di codifica o caratteri invisibili.
Domande frequenti e note importanti
- Set di caratteri: in ambienti web, prima elabora il testo in UTF-8 (questo strumento lo fa automaticamente).
- URL-safe: per parametri o percorsi URL, si consiglia di usare la variante URL-safe e considerare l'omissione dei caratteri di riempimento.
- Caratteri di riempimento: alcune implementazioni consentono di omettere =; durante la decodifica, è necessario completare automaticamente fino a un multiplo di 4.
- A capo: Base64 MIME potrebbe includere interruzioni di riga; durante la decodifica, seleziona "Ignora caratteri bianchi".
Come codificare/decodificare Base64 tramite linguaggi di programmazione
JavaScript
Testo → Base64 (sicuro UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-safe
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decodifica (Base64 → testo)
// Pre-elaborazione: sostituisci -_ con +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Codifica (testo → Base64)
$encoded = base64_encode($text);
// URL-safe
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Decodifica (Base64 → testo)
$b64 = strtr($input, '-_', '+/');
// Completa automaticamente '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Codifica (testo → Base64)
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Codifica URL-safe (senza riempimento)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Decodifica (Base64 → testo)
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # Completa automaticamente '='
return base64.b64decode(s).decode('utf-8')
Go
Codifica (testo → Base64)
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// Codifica URL-safe (senza riempimento)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Decodifica (Base64 → testo)
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// Decodifica URL-safe (senza riempimento)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Codifica (testo → Base64)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Codifica URL-safe (senza riempimento)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Decodifica (Base64 → testo)
use base64::{engine::general_purpose, Engine as _};
let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();
let url_dec = String::from_utf8(
general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Dipendenza Cargo: base64 = "0.22"
Java
Codifica (testo → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Codifica URL-safe (senza riempimento)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Decodifica (Base64 → testo)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);