Plak hier een rommelige MessagePack-hex- of base64-string en klik dan op "Opschonen!!"Rommelige msgpack plakken

Wat de MessagePack Opschoner echt doet

Wees even eerlijk tegen jezelf: MessagePack is een binair formaat. Als er bij het kopiëren-plakken uit een Cloudflare Worker-log een paar bytes zijn afgekapt, kan geen enkel tool ze terugtoveren — die bytes zijn weg, en de spec op github.com/msgpack/msgpack werkt zo sterk met length-prefixes dat een ontbrekende staart faalt bij decoderen, wat je ook doet. Deze pagina doet dus NIET alsof ze kapotte binaire data kan repareren.

Wat ze WEL doet is iets saaiers maar nuttig: ze haalt de opmaak-ruis weg die hex- en base64-dumps (RFC 4648) oppikken op weg door je terminal, je debugger, je iOS-console en je klembord. Concreet: knipt omringende whitespace weg, schilt omsluitende quotes af, pakt Python b'...'-byte-literals uit, klapt \xNN-escape-sequenties uit naar ruwe hex-cijfers, strip 0x-prefixes en gooit komma's en whitespace in de payload eruit. Het schone resultaat is wat een echte msgpack-decoder — zoals de officiële @msgpack/msgpack-bibliotheek of een conforme implementatie — zonder gemopper accepteert.

Concreet voorbeeld: plak b'\x83\xa7orderId\xa8ORD-7421...' links, druk Opschonen, krijg de ruwe hex-string rechts die je direct in onze MessagePack Viewer kan gooien of via een snelle Node REPL in een Uint8Array kan pipen. Niets bijzonders. Gewoon de ruis eraf.

Hoe een geplakte MessagePack-string opschonen

Drie stappen. Gebouwd voor het moment dat je net iets uit een logregel hebt gekopieerd en wil dat het hex is dat je aan een decoder kan geven.

1

Plak de rommelige string in het linkerpaneel

Smijt erin wat je hebt in de linker editor — een Python-repr(), een iOS-apparaatconsole-regel, de output van curl --data-binary @file | xxd, een Cloudflare Worker-logregel, wat dan ook. De opschoner heeft niet nodig dat het er mooi ingaat. Druk op Rommelig hex-voorbeeld voor een opzettelijk lelijk voorbeeld met prefixes en escapes door elkaar. Voorbeeld van wat je zou kunnen plakken:

b'\x83\xa7orderId\xa8ORD-7421\xa5items\x92\x82\xa3sku\xa7SKU-101\xa3qty\x02\x82\xa3sku\xa7SKU-244\xa3qty\x01\xa8customer\xa8Ava Chen'

Dat is een echte Python-byte-literal afgedrukt door msgpack-python. De opschoner herkent de b'...'-wrapper, schilt hem af en zet elke \xNN om in ruw hex.

2

Klik Opschonen

Druk de groene Opschonen!!-knop. Dat het opschonen via een klik gaat, is met opzet — je moet zien wat erin gaat voordat je accepteert wat eruit komt. Het rechterpaneel toont het schone hex (of base64, autogedetecteerd), en het notitiepaneel onder de editors lijst elke transformatie op die we hebben toegepast, zodat er niets stilletjes gebeurt.

3

Geef het resultaat aan een echte decoder

Pak de schone string uit het rechterpaneel en gooi hem in onze MessagePack Viewer of MessagePack naar JSON-tool. Als de bytes echt intact waren en alleen de opmaak het probleem was, zie je je gedecodeerde JSON — de SKU-101-regelitems, klant Ava Chen, alles. Als de decoder nog steeds zeurt, is het probleem echte corruptie of afkapping, en de enige fix is de bytes opnieuw uit de bron pakken.

Wanneer je dit echt gaat gebruiken

Bytes uit een Cloudflare Worker-log halen

Workers loggen binaire payloads graag als 0x83 0xa7 6f 72 64 65 72... met spaties tussen bytes en 0x op elke. Kopieer de regel, plak hier, en de opschoner haalt de prefixes en de spaties met één klik weg — wat je 83a76f7264657249... oplevert dat een echte decoder opvreet.

Een Python-repr uit een debugger uitpakken

Je hebt een breakpoint in pdb geraakt, p msgpack.packb(order) uitgevoerd en kreeg b'\x83\xa7orderId\xa8ORD-7421' terug. Dat is een Python-byte-literal — de b-prefix en de quotes horen niet bij de data. De opschoner schilt ze af en klapt elke \xNN uit naar het echte hex-paar, zodat je het resultaat in de viewer kan plakken zonder het met de hand over te schrijven.

Een curl --data-binary | xxd-dump opruimen

Je hebt curl --data-binary @msg.bin https://api.example.com | xxd gerund om te bekijken wat de server kreeg. xxd-output heeft regelnummers links, ASCII rechts en de hex-bytes in het midden met spaties. Knip de adreskolom en de ASCII-kolom zelf weg, plak het midden in de opschoner, en die haalt de inter-byte spaties weg zodat het hex weer één vaste string is.

Plakken vanuit een iOS-apparaatconsole

iOS-console-output wikkelt een binaire payload soms in enkele quotes en plaatst zachte regeleindes. De opschoner regelt de omsluitende quotes en de whitespace in één keer, wat je behoedt voor zoeken-en-vervangen-spelletjes in een teksteditor voordat je iets kan decoderen.

Veelgestelde vragen

Kan deze tool kapotte MessagePack-binaire data repareren?

Nee, en je moet wantrouwig zijn richting elke tool die beweert dat te kunnen. MessagePack is een binair formaat met length-prefixes — als een byte ontbreekt of fout staat midden in een lengte-veld, kan de decoder niet raden wat daar had moeten staan. Deze pagina fixt alleen plak-rommel en opmaak-ruis. Als je bytes echt corrupt zijn, is de fix om ze opnieuw uit de bron te halen: het verzoek opnieuw uitvoeren, opnieuw lezen uit de log-retentiestore, opnieuw exporteren uit de database. Er is geen software-vervanging voor de ontbrekende bytes.

Wat betekent "opschonen" hier precies?

Zes concrete normalisaties: knipt omringende whitespace; schilt omsluitende enkele of dubbele quotes af; pakt Python b'...' / b"..."-byte-literals uit; klapt \xNN-escape-sequenties uit naar ruwe hex-cijfers; strip 0x-prefixes van elke byte; verwijdert whitespace en komma's tussen bytes. Daarna wordt het resultaat één keer geparsed als hex of base64 om te bevestigen dat het structureel klopt. Het notitiepaneel onder de editors lijst elke transformatie die echt is afgegaan op je invoer.

Waarom is er een Opschonen-knop in plaats van auto-opschonen tijdens het typen?

Met opzet. De meeste van onze andere tools werken bij invoerwijziging automatisch bij omdat de invoer leesbaar is en je directe feedback wil. Deze is het tegenovergestelde — de invoer is een hoop escape-sequenties en je doel is verifiëren wat er getransformeerd is voordat je de output vertrouwt. Klik-gestuurd betekent dat je kan plakken, naar de invoer kijken, klikken en dan het notitiepaneel lezen om te bevestigen dat we deden wat je verwachtte.

Verlaat mijn data de browser?

Nee. De hele opschoning draait lokaal in dit tabblad. Geen fetch, geen upload, geen telemetrie op de invoer. Sluit het tabblad en de data is weg. Dat gezegd hebbende, behandel de URL-balk als publieke ruimte — plak geen payloads met geheimen in een querystring, en leeg je klembord als het iets gevoeligs droeg nadat je klaar bent.

En als mijn invoer base64 is in plaats van hex?

Wordt autogedetecteerd. Als de invoer alleen hex-tekens is (nadat we whitespace, komma's, 0x en \xNN-escapes hebben weggehaald) en even-lengte heeft, behandelen we het als hex. Anders proberen we standaard base64. Hoe dan ook bewaart de schone output het gedetecteerde formaat — schoon hex blijft hex, schoon base64 blijft base64. Gooi het resultaat vervolgens in de MessagePack Viewer, die op dezelfde manier autodetecteert.

Waarom ziet de output er soms identiek uit aan de input?

Omdat je invoer al schoon was — niets te doen. In dat geval toont het notitiepaneel "Invoer was al schoon." Dit is normaal en goed. De opschoner gaat geen transformaties verzinnen om er bezig uit te zien.

Andere MessagePack-tools

De opmaak opruimen is de eerste stap. Zodra de string schoon is, decoderen en rondreizen deze met de bytes: