Nettoyeur MessagePack
Nettoie les chaînes hex ou base64 MessagePack en désordre. Retire les préfixes 0x, étend les échappements \xNN, déballe les littéraux b'...' Python et coupe les artefacts de copier-coller.
Ce que fait vraiment le Nettoyeur MessagePack
Sois honnête avec toi-même une seconde : MessagePack est un format binaire. Si quelques octets ont été tronqués au copier-coller depuis un log Cloudflare Worker, aucun outil ne peut les faire réapparaître par magie — ces octets sont perdus, et la spec sur github.com/msgpack/msgpack est suffisamment basée sur des préfixes de longueur pour qu'une queue manquante échoue au décodage quoi que tu fasses. Donc cette page ne PRÉTEND PAS réparer des données binaires corrompues.
Ce qu'elle FAIT, c'est quelque chose de plus ennuyeux mais utile : elle retire le bruit de formatage que les dumps hex et base64 (RFC 4648) ramassent en passant par ton terminal, ton débogueur, ta console iOS et ton presse-papiers. Concrètement, elle coupe les espaces autour, retire les guillemets enveloppants, déballe les littéraux bytes Python b'...', étend les séquences d'échappement \xNN en chiffres hex bruts, retire les préfixes 0x, et supprime les virgules et espaces à l'intérieur du payload. Le résultat propre est ce qu'un vrai décodeur msgpack — comme la bibliothèque officielle @msgpack/msgpack ou toute implémentation conforme — acceptera sans broncher.
Exemple concret : colle b'\x83\xa7orderId\xa8ORD-7421...' à gauche, clique sur Nettoyer, récupère la chaîne hex brute à droite que tu peux mettre direct dans notre Visualiseur MessagePack ou pousser dans un Uint8Array dans un REPL Node rapide. Rien de magique. Juste retirer le bruit.
Comment nettoyer une chaîne MessagePack collée
Trois étapes. Conçu pour le moment où tu viens de copier quelque chose depuis une ligne de log et tu veux que ce soit du hex que tu peux passer à un décodeur.
Colle la chaîne en désordre dans le panneau gauche
Mets ce que tu as dans l'éditeur de gauche — un repr() Python, une ligne de console d'appareil iOS, la sortie de curl --data-binary @file | xxd, une entrée de log Cloudflare Worker, n'importe quoi. Le nettoyeur n'a pas besoin que ce soit joli en entrée. Clique sur Exemple de hex en désordre pour un exemple délibérément moche avec préfixes et échappements mélangés. Exemple de ce que tu pourrais coller :
b'\x83\xa7orderId\xa8ORD-7421\xa5items\x92\x82\xa3sku\xa7SKU-101\xa3qty\x02\x82\xa3sku\xa7SKU-244\xa3qty\x01\xa8customer\xa8Ava Chen'Ça, c'est un vrai littéral bytes Python imprimé par msgpack-python. Le nettoyeur reconnaît l'enveloppe b'...', la retire, et transforme chaque \xNN en hex brut.
Clique sur Nettoyer
Clique sur le bouton vert Nettoyer !!. Le nettoyage est déclenché au clic exprès — tu devrais voir ce qui entre avant d'accepter ce qui sort. Le panneau droit affiche le hex nettoyé (ou base64, autodétecté), et le panneau de notes sous les éditeurs liste chaque transformation appliquée pour que rien ne se passe en silence.
Passe le résultat à un vrai décodeur
Prends la chaîne nettoyée du panneau droit et mets-la dans notre Visualiseur MessagePack ou notre outil MessagePack vers JSON. Si les octets étaient vraiment intacts et que seul le formatage posait problème, tu verras ton JSON décodé — les lignes SKU-101, le client Ava Chen, tout. Si le décodeur se plaint encore, le souci est de la vraie corruption ou troncature, et le seul correctif est de récupérer les octets depuis la source.
Quand tu vas vraiment t'en servir
Extraire des octets d'un log Cloudflare Worker
Les Workers adorent logger les payloads binaires sous forme 0x83 0xa7 6f 72 64 65 72... avec des espaces entre les octets et 0x sur chacun. Copie la ligne, colle ici, et le nettoyeur retire les préfixes et les espaces en un clic — te laissant avec 83a76f7264657249... qu'un vrai décodeur va digérer.
Déballer un repr Python depuis un débogueur
Tu as touché un breakpoint dans pdb, lancé p msgpack.packb(order), et obtenu b'\x83\xa7orderId\xa8ORD-7421'. C'est un littéral bytes Python — le préfixe b et les guillemets ne font pas partie des données. Le nettoyeur les retire et étend chaque \xNN en paire hex réelle, donc tu peux coller le résultat dans le visualiseur sans le réécrire à la main.
Nettoyer un dump curl --data-binary | xxd
Tu as lancé curl --data-binary @msg.bin https://api.example.com | xxd pour inspecter ce que le serveur a reçu. La sortie de xxd a des numéros de ligne à gauche, de l'ASCII à droite, et les octets hex au milieu avec des espaces. Retire la colonne d'adresse et la colonne ASCII toi-même, colle le milieu dans le nettoyeur, et il retire les espaces inter-octets pour que le hex redevienne une chaîne solide.
Coller depuis une console d'appareil iOS
La sortie console iOS enveloppe parfois un payload binaire dans des guillemets simples et insère des sauts de ligne souples. Le nettoyeur gère les guillemets enveloppants et les espaces en une seule passe, ce qui t'évite de jouer au rechercher-remplacer dans un éditeur de texte avant de pouvoir décoder quoi que ce soit.
Questions fréquentes
Cet outil peut-il réparer des données binaires MessagePack corrompues ?
Non, et tu devrais te méfier de tout outil qui prétend pouvoir le faire. MessagePack est un format binaire avec préfixes de longueur — si un octet manque ou est mauvais au milieu d'un champ de longueur, le décodeur ne peut pas deviner ce qui était censé être là. Cette page ne corrige que les artefacts de collage et le bruit de formatage. Si tes octets sont vraiment corrompus, le correctif est de les récupérer depuis la source : relancer la requête, relire depuis le stockage de rétention des logs, ré-exporter depuis la base de données. Il n'y a pas de substitut logiciel pour les octets manquants.
Que veut dire exactement « nettoyer » ici ?
Six normalisations concrètes : coupe les espaces autour ; retire les guillemets simples ou doubles enveloppants ; déballe les littéraux bytes Python b'...' / b"..." ; étend les séquences d'échappement \xNN en chiffres hex bruts ; retire les préfixes 0x de chaque octet ; supprime les espaces et virgules entre octets. Après tout ça, le résultat est parsé une fois soit en hex soit en base64 pour confirmer qu'il est structurellement sain. Le panneau de notes sous les éditeurs liste chaque transformation qui s'est réellement déclenchée sur ton entrée.
Pourquoi y a-t-il un bouton Nettoyer au lieu d'un nettoyage auto pendant la saisie ?
Exprès. La plupart de nos autres outils s'auto-mettent à jour au changement d'entrée parce que l'entrée est lisible et que tu veux du feedback instantané. Celui-ci est l'opposé — l'entrée est un tas de séquences d'échappement et ton objectif est de vérifier ce qui a été transformé avant de faire confiance à la sortie. Déclenché au clic, ça veut dire que tu peux coller, regarder l'entrée, cliquer, puis lire le panneau de notes pour confirmer qu'on a fait ce que tu attendais.
Mes données quittent-elles le navigateur ?
Non. Tout le nettoyage tourne localement dans cet onglet. Pas de fetch, pas d'upload, pas de télémétrie sur l'entrée. Ferme l'onglet et les données ont disparu. Cela dit, traite la barre d'URL comme un espace public — ne colle pas de payloads contenant des secrets dans une query string, et vide ton presse-papiers s'il transportait quelque chose de sensible une fois terminé.
Et si mon entrée est en base64 au lieu de hex ?
C'est autodétecté. Si l'entrée n'est que des caractères hex (après qu'on retire les espaces, virgules, 0x et échappements \xNN) et de longueur paire, on la traite comme du hex. Sinon on essaie le base64 standard. Dans les deux cas, la sortie nettoyée préserve le format détecté — du hex propre reste du hex, du base64 propre reste du base64. Mets ensuite le résultat dans le Visualiseur MessagePack, qui autodétecte de la même façon.
Pourquoi la sortie ressemble-t-elle parfois exactement à l'entrée ?
Parce que ton entrée était déjà propre — rien à faire. Dans ce cas le panneau de notes affiche « L'entrée était déjà propre. » C'est normal et bon. Le nettoyeur ne va pas inventer des transformations juste pour avoir l'air occupé.
Autres outils MessagePack
Nettoyer le formatage est la première étape. Une fois la chaîne propre, ceux-ci décodent et font le tour complet des octets :