Encodeur & Décodeur Base64 (URL-Safe)
Encodez et décodez instantanément du texte ou des fichiers en Base64. Compatible base64url, UTF-8, retours MIME, Data URLs et correction d'erreurs en direct.
Encodez et décodez instantanément du texte ou des fichiers en Base64. Compatible base64url, UTF-8, retours MIME, Data URLs et correction d'erreurs en direct.
Encodez et décodez instantanément vos chaînes Base64 ou fichiers binaires. Prise en charge complète du format URL-safe (base64url), d'Unicode UTF-8, des retours à la ligne MIME, des Data URLs et de la réparation d'erreurs en direct.
Table de correspondance à 64 caractères associée à des valeurs sur 6 bits allant de 0 à 63. La norme standard RFC 4648 utilise [A-Za-z0-9+/], tandis que la variante URL-safe remplace + et / par - et _.
Caractère de suffixe (padding) ajouté lorsque le flux binaire d'entrée n'est pas un multiple de 24 bits. Ajoute == pour 1 octet restant, ou = pour 2 octets restants. Omis en base64url.
Nombre de colonnes après lequel un saut de ligne CRLF ou LF est inséré. La norme MIME utilise 76 caractères par ligne, PEM utilise 64 caractères, et les API web modernes n'appliquent généralement aucune coupure.
Standard de sérialisation des octets pour le texte brut. UTF-8 gère l'ensemble des caractères Unicode internationaux et les émojis. ISO-8859-1 (Latin-1) et ASCII sont restreints aux plages sur un seul octet.
Format d'URI avec préfixe MIME (data:[<mediatype>][;base64],<data>) permettant d'intégrer directement images, polices, fichiers audio et documents au sein du code HTML et CSS.
La fonction native du navigateur window.btoa() lève une exception InvalidCharacterError dès qu'elle rencontre un caractère situé hors de la plage Latin-1 (point de code > 255). Pour encoder de manière fiable du texte UTF-8 moderne incluant des émojis ou des écritures internationales, convertissez la chaîne en un Uint8Array à l'aide de new TextEncoder().encode(str) avant de transformer le flux d'octets en Base64.
Le Base64 standard utilise les caractères plus (+) et barre oblique (/). Lorsqu'ils transitent dans les paramètres de requête HTTP (query string), les serveurs web interprètent fréquemment le caractère + comme une espace, corrompant ainsi les données. Privilégiez systématiquement la spécification URL-safe Base64url (RFC 4648 §5), qui remplace + par - et / par _, tout en supprimant le remplissage final avec le signe =.
L'intégration de ressources sous forme de Data URLs élimine les allers-retours HTTP, mais le Base64 augmente la taille du fichier binaire d'exactement 33,33 % (4 caractères pour 3 octets) et empêche la mise en cache distincte par le navigateur. Réservez les Data URLs intégrées aux micro-icônes et aux SVG critiques de moins de 4 Ko ; conservez les fichiers multimédias plus volumineux en tant que ressources externes mises en cache via HTTP/2 ou HTTP/3.
Si une API ou un fichier de log tronque les signes égal terminaux, déterminez le remplissage nécessaire par calcul modulo : calculez reste = longueurChaine % 4. Si le reste vaut 2, ajoutez ==. Si le reste vaut 3, ajoutez =. Si le reste est égal à 1, la chaîne est corrompue, car 6 bits ne peuvent pas constituer un octet complet de 8 bits.
La chaîne d'entrée contient des caractères non conformes à l'alphabet Base64 (comme des espaces, des retours à la ligne ou des caractères encodés en URL tels que %2B). Activez l'option de nettoyage automatique pour supprimer les blancs et normaliser les tirets/soulignés, ou vérifiez si les données ont été générées au format URL-safe base64url.
Cette anomalie découle d'une discordance de jeu de caractères. Le texte initial a été sérialisé en octets multi-octets UTF-8, mais le décodeur les interprète en ISO-8859-1 (Latin-1), ou inversement. Basculez le sélecteur d'encodage de texte de Latin-1/ASCII vers UTF-8 pour rétablir la reconstruction correcte des caractères.
Le Base64 regroupe les données par blocs de 6 bits par caractère ; une longueur dont le reste modulo 4 vaut 1 indique qu'il ne reste que 6 bits isolés, ce qui est insuffisant pour reconstituer ne serait-ce qu'un seul octet de 8 bits. Cela prouve que la chaîne a été tronquée lors de la transmission réseau ou d'un copier-coller. Récupérez la charge utile complète depuis la source.
L'encodage Base64 convertit chaque bloc de 3 octets (24 bits) de données binaires en 4 caractères ASCII (chacun représentant 6 bits). Comme chaque caractère produit est stocké sous forme d'un octet ASCII de 8 bits en mémoire et sur le réseau HTTP, 24 bits en entrée produisent 32 bits en sortie. Cela engendre un ratio mathématique constant de 4/3, soit une augmentation exacte de 33,33 % du volume de données avant l'ajout des sauts de ligne et du padding.
Le Base64 standard (RFC 4648 §4) utilise les caractères + et / comme 62e et 63e symboles et emploie = pour le padding. Dans les paramètres d'URL et les noms de fichiers, le + est interprété comme une espace et le / sert de séparateur de chemin. La variante Base64url (RFC 4648 §5) remplace + par un tiret (-) et / par un tiret bas (_), tout en omettant généralement les caractères de remplissage = afin de garantir une transmission sécurisée dans les URLs sans encodage pourcent (%-encoding).
La fonction native btoa() du navigateur a été conçue pour des chaînes binaires où le point de code de chaque caractère tient sur un seul octet de 8 bits (valeurs de 0 à 255). Les caractères Unicode actuels (émojis, lettres accentuées, alphabets asiatiques) requièrent de 2 à 4 octets en UTF-8. Transmettre un point de code supérieur à 255 enfreint la spécification de btoa(). Les applications modernes doivent d'abord sérialiser la chaîne en octets UTF-8 via TextEncoder avant d'effectuer la conversion en Base64.
Pour afficher une image Base64 en HTML ou CSS sans dépendance vers un fichier externe, préfixez la chaîne avec le type MIME adéquat et l'identifiant base64 : data:image/[format];base64,[données]. Par exemple, une image PNG prend la forme data:image/png;base64,iVBORw0KGgo... Vous pouvez insérer cette chaîne complète directement dans l'attribut src d'une balise HTML <img> ou dans la propriété CSS background-image: url(...).
Le remplissage Base64 à base de signes égal (=) doit être omis lors de la génération de JSON Web Tokens (JWT), de jetons d'accès OAuth et de segments d'URL régis par les normes RFC 7515 (JWS) et RFC 4648 §5. Puisque la longueur de la chaîne est connue du parseur, les bits manquants se déduisent mathématiquement (longueur % 4), ce qui rend le padding superflu et optimise la compacité des URLs.
Convertissez vos données JSON en interfaces ou alias de type TypeScript propres et typés, avec inférence automatique des structures imbriquées.
Déduisez et générez des schémas Zod TypeScript, des définitions de types et des règles de validation imbriquées à partir de données JSON brutes.
Convertissez des structures JSON en définitions TypeBox Type.Object haute performance pour Fastify, Ajv et la validation TypeScript à l'exécution.
Transformez vos données JSON en définitions de schémas Valibot légères et modulaires avec v.object, v.string, v.number et validateurs de tableaux.
Transformez vos données JSON en classes Python Pydantic v2 BaseModel, TypedDict ou @dataclass avec inférence de types moderne et prise en charge des alias.
Transformez vos objets JSON en définitions de structures Go (Golang) idiomatiques avec déduction automatique des types et balises de struct configurables.