Décodage Hex

Collez une chaîne hexadécimale ci-dessous et cliquez sur Décoder pour la convertir en texte. Tout le traitement se fait localement dans votre navigateur.

Espaces, deux-points, virgules, tirets et préfixes 0x sont retirés avant le décodage.
Copié !

Qu'est-ce que le décodage Hex ?

Le décodage hexadécimal reconvertit une chaîne hexadécimale en sa représentation originale en octets puis en texte. L'entrée peut contenir des espaces, des deux-points ou aucun séparateur entre les paires hexadécimales.

Chaque paire de caractères hexadécimaux (00ff) représente un octet. Les octets décodés sont interprétés comme du texte UTF-8.

Espaces, deux-points, virgules, points-virgules, points et tirets sont retirés avant le décodage : de l'hexadécimal copié tel quel depuis une empreinte ou un dump passe donc généralement sans nettoyage. Les octets sont ensuite lus en UTF-8, et ce qui n'est pas de l'UTF-8 valide est signalé plutôt qu'abîmé.

Vous déboguez quelque chose qui refuse de se décoder ?

Une charge utile qui refuse de se décoder est le plus souvent un symptôme, pas la panne : un double encodage quelque part dans la chaîne, un jeu de caractères supposé plutôt que déclaré, un jeton signé sur des octets qui ne sont pas tout à fait ceux attendus. C'est notre métier, sur les intégrations, les API et les systèmes qui se passent des données.

Dites-nous ce qui casse

Questions fréquentes

Pourquoi ma chaîne hexadécimale refuse-t-elle de se décoder ?
En général un nombre impair de chiffres, ou un caractère qui n'est pas un chiffre hexadécimal. Chaque octet réclame exactement deux chiffres : un compte impair signifie donc que quelque chose a été tronqué ou qu'un chiffre s'est perdu en route. Un caractère parasite, c'est souvent un l minuscule saisi à la place d'un 1, un O majuscule à la place d'un 0, ou la fin d'une ligne copiée venue avec le reste.
Puis-je coller de l'hexadécimal avec des espaces, des deux-points ou des préfixes 0x ?
Espaces, deux-points, virgules, points-virgules, points et tirets sont tous retirés avant le décodage : de l'hexadécimal copié directement depuis une empreinte de certificat, une adresse MAC ou un dump passe donc généralement sans nettoyage. Un 0x devant chaque octet n'est pas retiré, enlevez-les d'abord si votre source en comporte.
Et si les octets décodés ne sont pas du texte ?
C'est le cas normal, pas une erreur. L'hexadécimal est une façon d'écrire des octets, et ces octets ne sont fréquemment pas du texte du tout. Cette page les décode en UTF-8 et le dit clairement quand ce n'est pas de l'UTF-8 valide, au lieu d'afficher des caractères de remplacement et de vous laisser deviner. Si vous attendiez du texte sans l'obtenir, vérifiez si les octets sont compressés ou chiffrés.
Comment savoir quel encodage de caractères utilisent ces octets ?
À partir du seul hexadécimal, vous ne le savez pas. Rien dans une chaîne hexadécimale ne consigne l'encodage qui l'a produite ; cette information vit à l'extérieur des octets, dans un en-tête HTTP, un format de fichier ou une spécification de protocole. Cette page suppose de l'UTF-8, ce qui est juste dans l'immense majorité des cas, et c'est pourquoi une séquence invalide est signalée comme binaire plutôt que transformée en douce en caractères abîmés. Si vous savez que les octets sont autre chose, décodez-les avec un outil qui vous laisse désigner l'encodage.
Le décodage hexadécimal est-il réversible ?
Totalement. L'hexadécimal est une substitution directe, deux caractères par octet, sans rien perdre ni rien ajouter : encoder puis décoder rend exactement les octets de départ. Ce qui n'est pas toujours réversible, c'est l'étape suivante : retransformer des octets en texte exige le bon encodage, et une suite d'octets invalide dans cet encodage n'a tout simplement pas de forme textuelle.