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

Base64 encode les données binaires en ASCII pour faciliter leur transmission et leur stockage. La taille augmente d'environ 33 %.
Encodage : convertir du texte brut en Base64 pour une transmission plus sûre.
Décodage : restaurer le texte original à partir d'une chaîne Base64.

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.

Exemples rapides

Texte original :
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

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

JavaScript
Texte → Base64 (UTF-8 sécurisé)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Sécurisé pour les URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Décoder (Base64 → texte)
// 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)));
PHP
Encoder (texte → Base64)
$encoded = base64_encode($text);
// Sécurisé pour les URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Décoder (Base64 → texte)
$b64 = strtr($input, '-_', '+/');
// Compléter automatiquement avec '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Encoder (texte → Base64)
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('=')
Décoder (Base64 → texte)
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')
Go
Encoder (texte → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Encodage sécurisé pour les URL (sans remplissage)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Décoder (Base64 → texte)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Décodage sécurisé pour les URL (sans remplissage)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Encoder (texte → Base64)
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());
Décoder (Base64 → texte)
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();
Dépendance Cargo : base64 = "0.22"
Java
Encoder (texte → Base64)
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));
Décoder (Base64 → texte)
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.