Charger un fichier
  1. base64hub
  2. Outils texte
  3. UTF-8 en Base64

UTF-8 en Base64 : encoder du texte Unicode et des emoji

Chaque caractère est converti en ses octets UTF-8, qui sont ensuite encodés en Base64 : emoji, accents et toutes les écritures sortent à l’octet près et se décodent de la même façon partout.

Gratuit sans inscription, sans limites Local rien n'est envoyé 1–4 octets par caractère en UTF-8 Mis à jour 27 oct. 2026
Entrée 0 BSortie 0 BTaille –

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment encoder du texte UTF-8 en Base64

  1. Saisissez ou collez votre texte dans Entrée · texte. Jeu de caractères est déjà réglé sur UTF-8.
  2. Le Base64 s’affiche dans Sortie · Base64. Le chiffre Entrée sous l’outil est le nombre d’octets UTF-8 ; le compteur au-dessus de la zone compte les caractères comme JavaScript, un emoji compte donc pour 2.
  3. Cochez URL-safe (- _) et Sans remplissage (=) pour les URL et les jetons, ou choisissez un Retour à la ligne pour l’e-mail ou le PEM.
  4. Copiez la sortie ou téléchargez-la dans base64.txt.

Base64 en UTF-8 retransforme le résultat en texte.

Comment UTF-8 transforme les caractères en octets

UTF-8 utilise de 1 à 4 octets par point de code. L’ASCII reste sur 1 octet, ce qui explique qu’un texte anglais s’encode de la même façon en UTF-8 et en ASCII. Tout le reste en prend davantage :

CaractèrePoint de codeOctets UTF-8Base64
AU+004141QQ==
éU+00E9C3 A9w6k=
€U+20ACE2 82 AC4oKs
日本語U+65E5 U+672C U+8A9E9 octets, 3 chacun5pel5pys6Kqe
😀U+1F600F0 9F 98 808J+YgA==

Comme Base64 ajoute un tiers aux octets, une phrase chinoise ou japonaise est multipliée par quatre environ entre ses caractères et ses caractères Base64, et un emoji seul devient 8 caractères. Gardez-le en tête pour les champs à longueur limitée ; le calculateur de taille vous aide.

Séquences d’emoji et couleurs de peau

Ce qui ressemble à un seul emoji est souvent l’assemblage de plusieurs points de code. Une couleur de peau est un modificateur séparé, et les emoji de familles ou de métiers relient plusieurs personnes avec un caractère invisible, le zero-width joiner (U+200D) :

EmojiPoints de codeOctets UTF-8Base64
😀148J+YgA==
👍🏽2 (pouce levé + peau intermédiaire)88J+RjfCfj70=
👨‍👩‍👧5 (trois personnes + deux jointures)188J+RqOKAjfCfkanigI3wn5Gn

Couper une chaîne Base64 ou ses octets décodés au milieu d’une telle séquence laisse des caractères cassés : ne tronquez donc jamais de l’UTF-8 encodé sur un octet arbitraire.

Même texte, octets différents : la normalisation Unicode

Certains caractères ont deux écritures valides en Unicode. é peut être le point de code unique U+00E9 (composé, NFC) ou e suivi de U+0301 COMBINING ACUTE ACCENT (décomposé, NFD). Les deux s’affichent à l’identique, mais les octets diffèrent :

TexteFormeOctetsBase64
éNFCC3 A9w6k=
éNFD65 CC 81ZcyB
naïveNFC6bmHDr3Zl
naïveNFD7bmFpzIh2ZQ==

Les noms de fichiers sur l’ancien système de fichiers HFS+ d’Apple sont stockés sous forme décomposée, alors que la plupart des claviers produisent du texte composé. Si vous comparez des valeurs Base64, les signez ou les utilisez comme clés, normalisez d’abord. Cet outil encode exactement les points de code collés et ne normalise rien.

UTF-8 en Base64 dans le code

En JavaScript, TextEncoder produit toujours de l’UTF-8. Normalisez d’abord si l’entrée peut provenir de sources différentes :

const text = "e\u0301".normalize("NFC");
Buffer.from(text, "utf8").toString("base64");   // "w6k=" (Node.js)
new TextEncoder().encode(text);                  // Uint8Array [195, 169]

Dans les navigateurs, les octets de TextEncoder peuvent passer par bytes.toBase64() là où il est pris en charge (Uint8Array.toBase64), ou par l’utilitaire btoa de la page JavaScript.

import base64, unicodedata

s = unicodedata.normalize("NFC", "nai\u0308ve")
base64.b64encode(s.encode("utf-8")).decode()   # 'bmHDr3Zl'

Voir Base64 en Python pour les fichiers et le streaming.

FAQ

Le Base64 de l'UTF-8 est-il le même que le Base64 normal ?

Oui. Base64 encode toujours des octets ; « UTF-8 en Base64 » précise simplement lesquels. Pour du texte ASCII simple, les octets UTF-8 sont égaux aux octets ASCII : la sortie est donc identique dans les deux cas.

Pourquoi deux chaînes d'apparence identique donnent-elles un Base64 différent ?

Unicode peut écrire certains caractères de plusieurs façons. é sous forme d’un seul point de code donne w6k=, alors que e suivi d’un accent combinant donne ZcyB. Normalisez en NFC avant d’encoder si les valeurs doivent correspondre.

L'encodeur ajoute-t-il une marque d'ordre des octets UTF-8 ?

Non. La sortie commence directement par les octets de votre texte. Si un destinataire exige un BOM, le Base64 doit commencer par 77u/, l’encodage des octets EF BB BF.

Combien d'octets occupe un emoji ?

Un emoji d’un seul point de code occupe 4 octets en UTF-8. Les emoji avec couleur de peau ou les familles assemblées comptent plusieurs points de code : 👍🏽 fait 8 octets et la famille 👨‍👩‍👧 en fait 18.