Aller au contenu

Encodeur et décodeur Base64

Base64 Encoder & Decoder

Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.

Encode du texte ou un fichier entier en Base64, et le décode en retour — y compris les URI `data:` et l'alphabet compatible URL qu'utilise un JWT. Le texte passe d'abord par UTF-8, ce que le `btoa` intégré du navigateur ne sait pas faire du tout.

🔒 Fonctionne entièrement dans votre navigateurbase64encodedecode
Mode
Alphabet

L’alphabet +/, comme dans MIME.

Texte ou fichier en entrée

Déposez n’importe quel fichier

Lu dans cet onglet. Rien n’est envoyé.

Sortie Base64

0 caractères de Base64.

Le texte est encodé en UTF-8 avant de passer en Base64, et c’est pourquoi « € » et les emoji survivent à l’aller-retour. Le btoa du navigateur ne sait pas le faire : il rejette d’emblée tout caractère au-dessus de U+00FF, alors qu’il laisse passer un « é » et le rend sous la forme « Ã© ». L’encodeur employé ici est donc écrit plutôt qu’emprunté.

Comment s’en servir

  1. Tapez ou déposez ce que vous avez

    La zone de texte accepte n'importe quel texte ; la zone de dépôt accepte n'importe quel fichier et l'encode par tranches, pour qu'un gros fichier ne fige pas l'onglet. Si vous collez en mode encodage quelque chose qui ressemble déjà à du Base64, la page propose de changer de mode.

  2. Choisissez l'alphabet

    Base64, c'est l'alphabet `+/` de MIME. Base64URL, c'est celui en `-_`, celui qui va dans un chemin d'URL ou un segment de JWT. Ils ne sont pas interchangeables — un décodeur de l'un rejette l'autre.

  3. Décidez du remplissage et du retour à la ligne

    Le `=` final est exigé par certains analyseurs et interdit dans un JWT. Couper à 76 est la longueur de ligne de MIME, ce qui compte quand la sortie part dans un en-tête de courriel ou un fichier en forme de PEM, et nulle part ailleurs.

  4. Prenez l'URI de données si c'est pour cela que vous êtes venu

    Un fichier déposé produit aussi un URI `data:` avec son type MIME, et le panneau montre de combien il est plus gros que le fichier — environ un tiers, le chiffre qui décide si l'intégrer est une bonne idée.

Questions fréquentes

Pourquoi les accents et le signe euro passent-ils intacts ici et cassent-ils ailleurs ?

Parce que le texte est converti en octets UTF-8 avant d'être encodé en Base64. Le `btoa` du navigateur encode un « é » comme un unique octet Latin-1, qui décodé en UTF-8 ressort en « Ã© », et il lève une exception sur tout caractère au-dessus de U+00FF — un « € » ou un emoji. Le contournement répandu — `unescape(encodeURIComponent(…))` — est celui qu'emploient la plupart des sites, et il se trompe en silence. L'encodeur d'ici est écrit en toutes lettres pour éviter les deux.

Le Base64 est-il un chiffrement ?

Non, et cela compte. C'est un encodage — n'importe qui peut le décoder, cette page comprise. Un mot de passe ou un jeton en Base64 est à la vue de tous. Si vous voulez du secret, l'outil de chiffrement de texte de ce site fait de l'AES-GCM avec une phrase secrète.

La sortie décodée est vide mais il n'y a pas eu d'erreur.

C'est que les octets se sont bien décodés mais ne sont pas du texte UTF-8 — un PNG, un zip, un protobuf. Le panneau bascule alors sur un aperçu hexadécimal et un bouton de téléchargement ; la zone de texte n'a rien à montrer parce qu'il n'y a pas de texte.

Quelle taille de fichier puis-je encoder ?

L'encodage lui-même est découpé en morceaux et ne bloquera pas la page, mais le résultat est une seule chaîne un tiers plus grosse que le fichier, et elle tient entièrement en mémoire. C'est vers quelques dizaines de mégaoctets qu'un onglet de navigateur commence à se plaindre, et un URI `data:` de cette taille n'est de toute façon utilisable nulle part.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.