Retour à tous les guides
DEVELOPER8 min2026-09

Encodages Web & Données Binaires : Base64, URL Encoding (Percent), UTF-8 & ASCII

Comment fonctionnent les encodages web indispensables : calcul du padding Base64, encodage d'URL selon la RFC 3986, Unicode UTF-8 et gestion des données binaires.

Transmettre des images, des fichiers binaires ou des caractères spéciaux dans des protocoles textuels comme HTTP, JSON ou les e-mails SMTP sans risque de corruption est l'un des défis historiques du web. Les mécanismes d'encodage comme Base64 et l'URL Encoding (pourcentage) fournissent une couche d'abstraction essentielle pour assurer l'interopérabilité des systèmes.

Ce guide technique explique les principes mathématiques sous-jacents, les tables de correspondance et les bonnes pratiques de performance.

1. Le Fonctionnement Mathématique de Base64

L'encodage Base64 (RFC 4648) permet de représenter n'importe quel flux d'octets binaires sous forme de texte imprimable ASCII composé de 64 caractères sûrs (A-Z, a-z, 0-9, +, /) :

• Regroupement par blocs : Les octets binaires (8 bits) sont groupés par paquets de 3 octets (soit 3 × 8 = 24 bits).

• Découpage en 4 sextets : Ces 24 bits sont ensuite réorganisés en 4 groupes de 6 bits (valeurs de 0 à 63).

• Remplacement dans la table : Chaque valeur de 6 bits est traduite par le caractère correspondant dans l'alphabet Base64.

• Rembourrage (Padding avec '=') : Si la longueur des données sources n'est pas un multiple de 3, un ou deux signes '=' sont ajoutés à la fin pour compléter le bloc.

Surcoût réseau de Base64 (+33 %)

Transformer un fichier binaire en chaîne Base64 augmente systématiquement sa taille de 33 % (4 caractères ASCII générés pour 3 octets réels). Évitez donc d'abuser des Data URIs pour des images volumineuses.

2. URL Encoding / Percent-Encoding (RFC 3986)

Les URI n'acceptent qu'un sous-ensemble restreint de caractères non réservés (lettres, chiffres, '-', '_', '.', '~'). Tous les autres caractères (espaces, accents, caractères de contrôle, symboles réservés comme '?', '&', '=') doivent être encodés en hexadécimal préfixé par '%' :

• Espace : encodé '%20' (ou '+' dans les formulaires application/x-www-form-urlencoded).

• Lettre 'é' (en UTF-8, octets C3 A9) : encodée '%C3%A9'.

• Symbole '&' (séparateur de paramètres) : encodé '%26' lorsqu'il fait partie de la valeur.

Exemples d'encodage d'URL pour caractères réservés et spéciaux
CaractèreCode ASCII / UnicodeEncodage URL (Percent-Encoding)
Espace ( )0x20%20
Esperluette (&)0x26%26
Point d'interrogation (?)0x3F%3F
Slash (/)0x2F%2F
É accent aigu (é)U+00E9 (UTF-8: 0xC3 0xA9)%C3%A9
Dièse (#)0x23%23

Questions Fréquentes

Réponses aux questions courantes sur ce sujet.

Outils Interactifs Liés à ce Guide

Utilisez gratuitement ces outils pour appliquer directement les concepts de ce guide.

Encodez du texte en Base64.

Texte

Décodez une chaîne Base64.

Texte

Encodez une URL ou un paramètre.

Texte

Décodez une URL encodée.

Texte

Comparez deux textes ligne à ligne.

Texte