Füge hier einen vermurksten MessagePack-Hex- oder Base64-String ein und klicke dann auf "Bereinigen!!"Vermurkstes msgpack einfügen

Was der MessagePack Fixer wirklich macht

Sei mal kurz ehrlich mit dir selbst: MessagePack ist ein Binärformat. Wenn beim Copy-Paste aus einem Cloudflare-Worker-Log ein paar Bytes abgeschnitten wurden, kann kein Tool sie zurückzaubern — diese Bytes sind weg, und die Spec auf github.com/msgpack/msgpack arbeitet so stark mit Längen-Präfixen, dass ein fehlendes Ende egal was du tust beim Decodieren scheitert. Diese Seite tut also NICHT so, als könnte sie kaputte Binärdaten reparieren.

Was sie WIRKLICH macht, ist etwas Langweiligeres, aber Nützliches: Sie entfernt das Formatierungs-Rauschen, das Hex- und Base64-Dumps (RFC 4648) auf dem Weg durch dein Terminal, deinen Debugger, deine iOS-Konsole und deine Zwischenablage aufgabeln. Konkret: schneidet umgebende Whitespaces ab, entfernt umschließende Anführungszeichen, packt Pythons b'...'-Bytes-Literale aus, expandiert \xNN-Escape-Sequenzen in rohe Hex-Ziffern, entfernt 0x-Präfixe und wirft Kommas und Whitespaces aus dem Payload. Das saubere Ergebnis ist das, was ein echter msgpack-Decoder — wie die offizielle @msgpack/msgpack-Bibliothek oder jede konforme Implementierung — ohne zu meckern akzeptiert.

Konkretes Beispiel: Füge links b'\x83\xa7orderId\xa8ORD-7421...' ein, drücke Bereinigen, und du bekommst rechts den rohen Hex-String, den du direkt in unseren MessagePack Viewer werfen oder in einer kurzen Node-REPL in ein Uint8Array pipen kannst. Nichts Spektakuläres. Einfach nur das Rauschen weg.

Wie du einen eingefügten MessagePack-String bereinigst

Drei Schritte. Gemacht für den Moment, in dem du gerade was aus einer Log-Zeile kopiert hast und willst, dass es Hex ist, das du einem Decoder geben kannst.

1

Den vermurksten String in den linken Bereich einfügen

Wirf rein, was du hast, in den linken Editor — ein Python-repr(), eine iOS-Geräte-Konsolenzeile, die Ausgabe von curl --data-binary @file | xxd, einen Cloudflare-Worker-Log-Eintrag, irgendwas. Der Fixer braucht nicht, dass es schön reingeht. Drück Beispiel für vermurkstes Hex für ein bewusst hässliches Beispiel mit gemischten Präfixen und Escapes. Beispiel für das, was du einfügen könntest:

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

Das ist ein echtes Python-Bytes-Literal, das von msgpack-python gedruckt wurde. Der Fixer erkennt den b'...'-Wrapper, schält ihn ab und macht aus jedem \xNN rohes Hex.

2

Auf Bereinigen klicken

Drück den grünen Bereinigen!!-Button. Dass die Bereinigung per Klick läuft, ist Absicht — du solltest sehen, was reingeht, bevor du akzeptierst, was rauskommt. Der rechte Bereich zeigt das saubere Hex (oder Base64, autoerkannt), und das Notizen-Panel unter den Editoren listet jede angewandte Transformation auf, damit nichts heimlich passiert.

3

Das Ergebnis an einen echten Decoder geben

Nimm den sauberen String aus dem rechten Bereich und wirf ihn in unseren MessagePack Viewer oder das MessagePack zu JSON-Tool. Wenn die Bytes wirklich intakt waren und nur die Formatierung das Problem war, siehst du dein decodiertes JSON — die SKU-101-Positionen, Kunde Ava Chen, alles. Wenn der Decoder weiter meckert, ist das Problem echte Korruption oder Trunkierung, und der einzige Fix ist, die Bytes nochmal von der Quelle zu holen.

Wann du das wirklich nutzen wirst

Bytes aus einem Cloudflare-Worker-Log fischen

Workers loggen Binär-Payloads gerne als 0x83 0xa7 6f 72 64 65 72... mit Leerzeichen zwischen den Bytes und 0x auf jedem. Kopier die Zeile, füg sie hier ein, und der Fixer entfernt die Präfixe und die Leerzeichen mit einem Klick — und lässt dir 83a76f7264657249..., das ein echter Decoder verschlingt.

Ein Python-repr aus einem Debugger auspacken

Du bist auf einen Breakpoint im pdb gestoßen, hast p msgpack.packb(order) ausgeführt und b'\x83\xa7orderId\xa8ORD-7421' zurückbekommen. Das ist ein Python-Bytes-Literal — das b-Präfix und die Anführungszeichen sind nicht Teil der Daten. Der Fixer schält sie ab und expandiert jedes \xNN in das tatsächliche Hex-Paar, sodass du das Ergebnis in den Viewer einfügen kannst, ohne es von Hand neu zu schreiben.

Einen curl --data-binary | xxd-Dump aufräumen

Du hast curl --data-binary @msg.bin https://api.example.com | xxd ausgeführt, um zu schauen, was der Server bekam. Die xxd-Ausgabe hat Zeilennummern links, ASCII rechts und die Hex-Bytes in der Mitte mit Leerzeichen. Schmeiß die Adressspalte und die ASCII-Spalte selbst weg, füg die Mitte in den Fixer ein, und er entfernt die Leerzeichen zwischen den Bytes, sodass das Hex wieder ein zusammenhängender String ist.

Aus einer iOS-Geräte-Konsole einfügen

iOS-Konsolenausgabe wickelt einen Binär-Payload manchmal in einfache Anführungszeichen und fügt weiche Zeilenumbrüche ein. Der Fixer kümmert sich in einem Durchgang um die umgebenden Anführungszeichen und die Whitespaces, was dir das Suchen-und-Ersetzen-Spielchen in einem Texteditor erspart, bevor du irgendwas decodieren kannst.

Häufige Fragen

Kann dieses Tool kaputte MessagePack-Binärdaten reparieren?

Nein, und du solltest jedem Tool misstrauen, das das behauptet. MessagePack ist ein binäres Format mit Längen-Präfixen — wenn ein Byte mitten in einem Längenfeld fehlt oder falsch ist, kann der Decoder nicht raten, was da hätte sein sollen. Diese Seite repariert nur Paste-Müll und Formatierungs-Rauschen. Wenn deine Bytes wirklich kaputt sind, ist der Fix, sie nochmal von der Quelle zu holen: Request neu absetzen, aus dem Log-Retention-Store neu lesen, aus der Datenbank neu exportieren. Es gibt keinen Software-Ersatz für die fehlenden Bytes.

Was bedeutet "Bereinigen" hier genau?

Sechs konkrete Normalisierungen: schneidet umgebende Whitespaces ab; entfernt umschließende einfache oder doppelte Anführungszeichen; packt Pythons b'...' / b"..."-Bytes-Literale aus; expandiert \xNN-Escape-Sequenzen in rohe Hex-Ziffern; entfernt 0x-Präfixe von jedem Byte; entfernt Whitespaces und Kommas zwischen den Bytes. Danach wird das Ergebnis einmal als Hex oder Base64 geparst, um zu bestätigen, dass es strukturell sauber ist. Das Notizen-Panel unter den Editoren listet jede Transformation auf, die bei deiner Eingabe tatsächlich gefeuert hat.

Warum gibt es einen Bereinigen-Button statt automatischer Bereinigung beim Tippen?

Mit Absicht. Die meisten unserer anderen Tools aktualisieren sich bei Eingabeänderung automatisch, weil die Eingabe lesbar ist und du sofortiges Feedback willst. Dieses ist das Gegenteil — die Eingabe ist ein Haufen Escape-Sequenzen und dein Ziel ist, zu verifizieren, was transformiert wurde, bevor du der Ausgabe vertraust. Klick-getrieben heißt: einfügen, Eingabe anschauen, klicken, dann das Notizen-Panel lesen, um zu bestätigen, dass wir gemacht haben, was du erwartet hast.

Verlassen meine Daten den Browser?

Nein. Die ganze Bereinigung läuft lokal in diesem Tab. Kein Fetch, kein Upload, keine Telemetrie zur Eingabe. Schließ das Tab und die Daten sind weg. Trotzdem: behandle die URL-Leiste wie einen öffentlichen Ort — füg keine Payloads mit Geheimnissen in einen Query-String ein, und leer deine Zwischenablage, falls sie nach getaner Arbeit was Sensibles getragen hat.

Was, wenn meine Eingabe Base64 statt Hex ist?

Wird autoerkannt. Wenn die Eingabe nur aus Hex-Zeichen besteht (nachdem wir Whitespaces, Kommas, 0x und \xNN-Escapes entfernt haben) und gerade Länge hat, behandeln wir sie als Hex. Sonst probieren wir Standard-Base64. So oder so behält die saubere Ausgabe das erkannte Format — sauberes Hex bleibt Hex, sauberes Base64 bleibt Base64. Wirf das Ergebnis als Nächstes in den MessagePack Viewer, der genauso autoerkennt.

Warum sieht die Ausgabe manchmal genauso aus wie die Eingabe?

Weil deine Eingabe schon sauber war — nichts zu tun. In dem Fall zeigt das Notizen-Panel "Eingabe war schon sauber." Das ist normal und gut. Der Fixer erfindet keine Transformationen, nur um beschäftigt auszusehen.

Andere MessagePack-Tools

Die Formatierung aufzuräumen ist der erste Schritt. Sobald der String sauber ist, decodieren und durchlaufen diese die Bytes komplett: