Base64 Encoder and Decoder
A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.
Codage (texte → Base64)
Décodage (Base64 → texte)
Instructions d'utilisation
Fonctionnalités
- Sécurité UTF-8 : gère correctement les caractères non ASCII (utilise encodeURIComponent/unescape).
- Prise en charge URL-safe : bascule instantanée + / → - _, optionnellement supprime le remplissage =.
- Traitement préalable au décodage : ignorer les espaces, restaurer automatiquement l'URL-safe et compléter les = manquants.
- Interaction en temps réel : traitement automatique à la saisie, affichage des longueurs et statistiques de croissance.
- Convivialité : copie rapide, remplissage croisé des résultats, accessibilité clavier, optimisé pour mobile.
- Thème cohérent : pas de classes Tailwind dark:, entièrement basé sur DaisyUI.
Qu'est-ce que Base64 ?
Base64 est un moyen de coder des données binaires en texte ASCII, couramment utilisé pour transmettre des images ou le contenu de fichiers dans des protocoles textuels comme JSON, XML ou HTTP.
Il convertit chaque groupe de 3 octets en 4 caractères imprimables, ce qui entraîne généralement une augmentation d'environ 33 % de la taille.
Base64 standard utilise les caractères A–Z a–z 0–9 + / et le caractère de remplissage = ; la variante sécurisée pour les URL remplace + et / par - et _ afin d'éviter les problèmes d'échappement dans les URLs.
Utilisations courantes
- Incorporer des images ou de petits fichiers sous forme de Data URI.
- Transférer des données binaires entre le client et le serveur (comme des clés chiffrées ou des flux compressés).
- Rendre du texte imprimable pour éviter les problèmes liés à des encodages incohérents ou à des caractères invisibles.
Questions fréquentes et précautions
- Jeu de caractères : dans un environnement web, traitez d'abord le texte en UTF-8 (cet outil le fait automatiquement).
- Sécurisé pour les URL : privilégiez la variante sécurisée pour les paramètres ou chemins d'URL, et envisagez de supprimer les caractères de remplissage.
- Caractères de remplissage : certaines implémentations autorisent l'omission de = ; lors du décodage, complétez automatiquement pour atteindre un multiple de 4.
- Sauts de ligne : Base64 MIME peut contenir des sauts de ligne ; cochez « Ignorer les caractères blancs » lors du décodage.
Comment effectuer le codage/décodage Base64 via un langage de programmation
const encoded = btoa(unescape(encodeURIComponent(text)));
// Sécurisé pour les URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
// Prétraitement : remplacez -_ par +/
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)));
$encoded = base64_encode($text);
// Sécurisé pour les URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
$b64 = strtr($input, '-_', '+/');
// Compléter automatiquement avec '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Encodage sécurisé pour les URL (sans remplissage)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # Compléter automatiquement avec '='
return base64.b64decode(s).decode('utf-8')
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// Encodage sécurisé pour les URL (sans remplissage)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// Décodage sécurisé pour les URL (sans remplissage)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Encodage sécurisé pour les URL (sans remplissage)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
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();
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Encodage sécurisé pour les URL (sans remplissage)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
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);
Exemples de Data URI
Incorporez des images ou de petits fichiers sous forme de Data URI :
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
Remarque : il est déconseillé d'utiliser des Data URI pour de gros fichiers, car cela augmente considérablement la taille du HTML/JSON et nuit aux performances.