Mode d’emploi
- Saisissez ou collez du texte dans la zone de saisie.
- Tous les encodages se mettent à jour pendant la frappe : binaire, octal, décimal, hexadécimal, les variantes de Base32, de Base36 à Base91, uuencode et xxencode.
- Comparez les sorties pour repérer la plus courte, ou celle qui n’utilise que les caractères que vous pouvez accepter.
- Cliquez sur « Copier » à côté du résultat dont vous avez besoin.
Tous les encodages à partir d’une seule entrée
Chaque encodage de cette page transforme les mêmes octets en une suite de caractères différente. Les voir côte à côte est le moyen le plus rapide de choisir un encodage pour un projet, de reconnaître une chaîne trouvée dans un journal ou un fichier de configuration, ou de comprendre en quoi les formats diffèrent. Votre texte est encodé en octets UTF-8 : une lettre accentuée compte donc pour deux octets et un caractère chinois pour trois. Tout s’exécute dans votre navigateur.
- Un nombre par octet. Le binaire, l’octal et le décimal écrivent chaque octet séparément. C’est facile à lire, mais long.
- Groupes de bits. L’hexadécimal, Base32 (avec Base32hex, Crockford et z-base-32), Base64 et Base64URL attribuent à chaque caractère un nombre fixe de bits : la longueur de la sortie ne dépend donc que de celle de l’entrée.
- Grands nombres. Base36, Base58 et Base62 traitent l’entrée entière comme un seul grand entier. La longueur peut varier d’un caractère selon la valeur, et les octets nuls de tête sont conservés sous forme de caractères de tête.
- Blocs. Base45 transforme 2 octets en 3 caractères, Ascii85, Z85 et Base85 transforment 4 octets en 5, et Base91 loge 13 ou 14 bits dans chaque paire de caractères.
- Lignes. uuencode et xxencode sont d’anciens formats du courrier électronique et d’Usenet qui écrivent les données par lignes, chacune commençant par un caractère de longueur.
Comparaison des tailles de sortie
Nombre de caractères dont chaque encodage a besoin par octet d’entrée, et longueur obtenue pour une valeur de 32 octets comme un hachage SHA-256 ou une clé publique Ed25519 :
| Encodage | Caractères par octet | 32 octets donnent |
|---|---|---|
| Base16 (hexa) | 2,0 | 64 |
| Base32 | 1,6 | 56 (52 sans remplissage) |
| Base36 | environ 1,55 | 49 ou 50 |
| Base45 | 1,5 | 48 |
| Base58 | environ 1,37 | 43 ou 44 |
| Base62 | environ 1,34 | 42 ou 43 |
| Base64 | environ 1,33 | 44 (43 sans remplissage) |
| Base85 | 1,25 | 40 |
| Base91 | environ 1,23 | 39 ou 40 |
Passer de l’hexadécimal au Base64 réduit la longueur d’un tiers. Aller plus loin, du Base64 au Base91, ne fait gagner qu’environ 8 % de plus.
Quel encodage choisir
La sortie la plus courte n’est pas toujours la meilleure. Ascii85 peut contenir des guillemets et des barres obliques inverses, et Base91 des guillemets doubles : les deux peuvent donc nécessiter un échappement dans du JSON, du HTML ou des commandes shell. Réfléchissez à l’endroit où la chaîne doit être utilisée :
- URL et noms de fichiers : Base64URL, Base58 ou Base62.
- Lecture à voix haute ou saisie manuelle : Crockford Base32 ou Base58, qui excluent les caractères qui se ressemblent.
- Systèmes insensibles à la casse : hexadécimal, Base32 ou Base36.
- QR codes : Base45, qui n’utilise que les caractères du mode alphanumérique des QR codes.
- Texte compact dans PDF, Git ou ZeroMQ : Ascii85, Base85 ou Z85.
- Compatibilité maximale : Base64, pris en charge par presque tous les langages et toutes les plateformes.
Questions fréquentes
Quel encodage donne la sortie la plus courte ?
Parmi les encodages de cette page, Base91 est le plus compact, avec environ 1,23 caractère par octet, suivi d’Ascii85, de Z85 et de Base85 avec 1,25. Base64 en demande environ 1,33, mais il est bien plus largement pris en charge, ce qui en fait le choix par défaut habituel.
Pourquoi la longueur des résultats Base58 et Base62 varie-t-elle pour des entrées de même taille ?
Ces encodages convertissent l’entrée entière comme un seul grand nombre : la longueur dépend donc de sa valeur, et pas seulement de sa taille. Chaque octet nul de tête ajoute en outre un caractère de tête. L’hexadécimal, Base32 et Base64 donnent toujours la même longueur pour un même nombre d’octets.
Puis-je décoder une chaîne sur cette page ?
Pourquoi la sortie binaire est-elle si longue ?
Le binaire écrit 8 chiffres pour chaque octet, plus les séparateurs : il est donc au moins quatre fois plus long que l’hexadécimal. Il sert à examiner les bits un par un, pas à stocker ou à transmettre des données.
Mon texte est-il envoyé à un serveur ?
Non. Tous les encodages sont calculés en JavaScript dans votre navigateur, et le texte ne quitte jamais votre appareil.