Pulitore MessagePack
Ripulisce stringhe hex o base64 di MessagePack incasinate. Toglie i prefissi 0x, espande gli escape \xNN, srotola i literal b'...' di Python e taglia gli scarti del copia-incolla.
Cosa fa davvero il Pulitore MessagePack
Sii onesto con te stesso un secondo: MessagePack è un formato binario. Se qualche byte è stato troncato durante il copia-incolla da un log di Cloudflare Worker, nessuno strumento può farli riapparire per magia — quei byte sono persi, e la spec su github.com/msgpack/msgpack usa abbastanza prefissi di lunghezza che una coda mancante fallirà la decodifica qualunque cosa tu faccia. Quindi questa pagina NON finge di riparare dati binari corrotti.
Quello che FA è qualcosa di più noioso ma utile: toglie il rumore di formattazione che dump hex e base64 (RFC 4648) raccolgono passando per il tuo terminale, il tuo debugger, la tua console iOS e i tuoi appunti. Concretamente, taglia gli spazi attorno, sbuccia le virgolette avvolgenti, srotola i literal bytes b'...' di Python, espande le sequenze di escape \xNN in cifre hex grezze, toglie i prefissi 0x e scarta virgole e spazi dall'interno del payload. Il risultato pulito è quello che un decoder msgpack vero — come la libreria ufficiale @msgpack/msgpack o qualsiasi implementazione conforme — accetterà senza lamentele.
Esempio concreto: incolla b'\x83\xa7orderId\xa8ORD-7421...' a sinistra, premi Pulisci, ottieni la stringa hex grezza a destra che puoi mettere direttamente nel nostro Visualizzatore MessagePack o convogliare in un Uint8Array in una REPL Node veloce. Niente di speciale. Solo togliere il rumore.
Come pulire una stringa MessagePack incollata
Tre passi. Pensato per il momento in cui hai appena copiato qualcosa da una riga di log e vuoi che sia hex da passare a un decoder.
Incolla la stringa incasinata nel pannello sinistro
Butta dentro quello che hai nell'editor di sinistra — un repr() di Python, una riga di console di un dispositivo iOS, l'output di curl --data-binary @file | xxd, un'entry di log di un Cloudflare Worker, qualsiasi cosa. Il pulitore non ha bisogno che entri bello. Premi Esempio di hex incasinato per un esempio volutamente brutto con prefissi ed escape mescolati. Esempio di cosa potresti incollare:
b'\x83\xa7orderId\xa8ORD-7421\xa5items\x92\x82\xa3sku\xa7SKU-101\xa3qty\x02\x82\xa3sku\xa7SKU-244\xa3qty\x01\xa8customer\xa8Ava Chen'Quello è un literal bytes Python vero stampato da msgpack-python. Il pulitore riconosce il wrapper b'...', lo sbuccia, e trasforma ogni \xNN in hex grezzo.
Clicca Pulisci
Premi il bottone verde Pulisci!!. La pulizia è guidata da click di proposito — dovresti vedere cosa entra prima di accettare cosa esce. Il pannello destro mostra l'hex pulito (o base64, autorilevato), e il pannello note sotto gli editor elenca ogni trasformazione applicata così niente succede in silenzio.
Passa il risultato a un decoder vero
Prendi la stringa pulita dal pannello destro e mettila nel nostro Visualizzatore MessagePack o nello strumento MessagePack a JSON. Se i byte erano davvero intatti e solo la formattazione era il problema, vedrai il tuo JSON decodificato — le righe SKU-101, il cliente Ava Chen, tutto quanto. Se il decoder continua a lamentarsi, il problema è corruzione vera o troncamento, e l'unica soluzione è riprendere i byte dalla fonte.
Quando lo userai davvero
Tirare fuori byte da un log di Cloudflare Worker
I Worker amano loggare payload binari come 0x83 0xa7 6f 72 64 65 72... con spazi tra i byte e 0x su ognuno. Copia la riga, incollala qui, e il pulitore toglie i prefissi e gli spazi con un click — lasciandoti con 83a76f7264657249... che un decoder vero mangia.
Srotolare un repr Python da un debugger
Hai colpito un breakpoint in pdb, eseguito p msgpack.packb(order), e ottenuto b'\x83\xa7orderId\xa8ORD-7421'. Quello è un literal bytes Python — il prefisso b e le virgolette non fanno parte dei dati. Il pulitore li sbuccia ed espande ogni \xNN nella coppia hex reale, così puoi incollare il risultato nel viewer senza riscriverlo a mano.
Ripulire un dump curl --data-binary | xxd
Hai lanciato curl --data-binary @msg.bin https://api.example.com | xxd per ispezionare cosa ha ricevuto il server. L'output di xxd ha numeri di riga a sinistra, ASCII a destra, e i byte hex in mezzo con spazi. Togli la colonna degli indirizzi e la colonna ASCII tu stesso, incolla il centro nel pulitore, e lui rimuove gli spazi tra byte così l'hex torna ad essere una stringa solida.
Incollare da una console di dispositivo iOS
L'output della console iOS a volte avvolge un payload binario in virgolette singole e inserisce a capo morbidi. Il pulitore gestisce le virgolette avvolgenti e gli spazi in una sola passata, il che ti risparmia di giocare a trova-e-sostituisci in un editor di testo prima di poter decodificare qualsiasi cosa.
Domande frequenti
Questo strumento può riparare dati binari MessagePack corrotti?
No, e dovresti diffidare di qualsiasi strumento che dice di poterlo fare. MessagePack è un formato binario con prefissi di lunghezza — se un byte manca o è sbagliato in mezzo a un campo di lunghezza, il decoder non può indovinare cosa avrebbe dovuto esserci. Questa pagina aggiusta solo gli scarti del paste e il rumore di formattazione. Se i tuoi byte sono davvero corrotti, la soluzione è riprenderli dalla fonte: rilanciare la richiesta, rileggere dallo store di retention dei log, ri-esportare dal database. Non c'è sostituto software per i byte mancanti.
Cosa significa esattamente "pulire" qui?
Sei normalizzazioni concrete: taglia gli spazi attorno; sbuccia le virgolette singole o doppie avvolgenti; srotola i literal bytes Python b'...' / b"..."; espande le sequenze di escape \xNN in cifre hex grezze; toglie i prefissi 0x da ogni byte; rimuove spazi e virgole tra byte. Dopo tutto questo, il risultato viene parsato una volta come hex o base64 per confermare che sia strutturalmente sano. Il pannello note sotto gli editor elenca ogni trasformazione che è davvero scattata sul tuo input.
Perché c'è un bottone Pulisci invece dell'auto-pulizia mentre scrivi?
Di proposito. La maggior parte degli altri nostri strumenti si auto-aggiorna al cambio di input perché l'input è leggibile e vuoi feedback immediato. Questo è l'opposto — l'input è un mucchio di sequenze di escape e il tuo obiettivo è verificare cosa è stato trasformato prima di fidarti dell'output. Guidato da click vuol dire che puoi incollare, guardare l'input, cliccare, e poi leggere il pannello note per confermare che abbiamo fatto quello che ti aspettavi.
I miei dati lasciano il browser?
No. Tutta la pulizia gira localmente in questa scheda. Niente fetch, niente upload, niente telemetria sull'input. Chiudi la scheda e i dati sono spariti. Detto questo, tratta la barra dell'URL come uno spazio pubblico — non incollare payload con segreti in una query string, e svuota gli appunti se trasportavano qualcosa di sensibile dopo che hai finito.
E se il mio input è base64 invece di hex?
È autorilevato. Se l'input è tutto caratteri hex (dopo che togliamo spazi, virgole, 0x ed escape \xNN) e di lunghezza pari, lo trattiamo come hex. Altrimenti proviamo base64 standard. In entrambi i casi, l'output pulito preserva il formato rilevato — hex pulito resta hex, base64 pulito resta base64. Metti il risultato nel Visualizzatore MessagePack a seguire, che autorileva allo stesso modo.
Perché a volte l'output sembra identico all'input?
Perché il tuo input era già pulito — niente da fare. In quel caso il pannello note mostra "L'input era già pulito." Questo è normale e buono. Il pulitore non si inventa trasformazioni solo per sembrare impegnato.
Altri strumenti MessagePack
Pulire la formattazione è il primo passo. Una volta che la stringa è pulita, questi decodificano e fanno il giro completo dei byte: