Che file è un Base64 che inizia con JVBERi0?
JVBERi0 = PDF Un PDF. Ogni PDF inizia con i byte `%PDF-`, che in Base64 diventano `JVBERi0`. `iVBORw0KGgo` è un PNG, `/9j/` è un JPEG e `UEsDB` è uno ZIP, quindi anche DOCX e XLSX.
Base64 in PDF online: incolla Base64 puro, un data URI o l'intera risposta JSON. Rileva il vero tipo di file, mostra l'anteprima, lo scarica e segnala i PDF troncati. Anche da PDF a Base64. Nessun upload.
Interpretato così:
Trascina qui un PDF o qualsiasi altro file, oppure clicca per sfogliare
Qualsiasi tipo di file · fino a 50 MB · mai caricato
Ogni tipo di file inizia con byte "magici" fissi, quindi anche il suo Base64 inizia con caratteri fissi. I prefissi qui sotto sono calcolati da intestazioni di file reali con lo stesso motore usato da questo strumento.
| Il Base64 inizia con | Tipo di file | Magic byte (hex) |
|---|---|---|
JVBERi0 | 25 50 44 46 2D | |
iVBORw0KGgoAAAANSUhEU | PNG | 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 |
/9j/ | JPEG | FF D8 FF |
R0lGOD | GIF | 47 49 46 38 |
UEsDB | ZIP / DOCX / XLSX / PPTX | 50 4B 03 04 |
0M8R4KGxGu | Office 97–2003 (DOC/XLS/PPT) | D0 CF 11 E0 A1 B1 1A E1 |
H4sI | Gzip | 1F 8B 08 |
UklGR | RIFF (WebP / WAV / AVI) | 52 49 46 46 |
SUQz | MP3 (ID3) | 49 44 33 |
e1xydG | RTF | 7B 5C 72 74 66 |
Scritto e revisionato dagli ingegneri che sviluppano gli strumenti di codifica di Go Tools. Ogni lunghezza, prefisso ed esempio di questa pagina è prodotto dal motore della pagina stessa e verificato da test automatici.
JVBERi0 = PDF Un PDF. Ogni PDF inizia con i byte `%PDF-`, che in Base64 diventano `JVBERi0`. `iVBORw0KGgo` è un PNG, `/9j/` è un JPEG e `UEsDB` è uno ZIP, quindi anche DOCX e XLSX.
+33.3% 4 caratteri ogni 3 byte, cioè circa il 33.3% in più: un PDF da 1 MB (1.048.576 byte) diventa 1.398.104 caratteri. Con un a capo ogni 76 caratteri, come negli allegati email, sono 1.434.896 caratteri, il 36.8% in più.
Il Base64 rappresenta byte qualsiasi usando solo 64 caratteri di testo sicuri (A–Z, a–z, 0–9, +, /), con = come padding. Ogni 3 byte diventano 4 caratteri. Così un file binario come un PDF può passare attraverso canali che trasportano solo testo: un campo JSON, un elemento XML, il corpo di un'email, una colonna di testo in un database. Convertire Base64 in PDF significa semplicemente fare il percorso inverso: ritrasformare i caratteri in byte e salvarli con estensione .pdf. Il problema è che il Base64 reale arriva raramente pulito: porta con sé un prefisso data:, escape JSON, a capo o un alfabeto diverso, e molti convertitori producono in silenzio un file che non si apre.
%PDF-1.4 → bytes 25 50 44 46 2D 31 2E 34 JVBERi0xLjQ= → the same bytes in Base64 data:application/pdf;base64,JVBERi0xLjQ= → data URI form
Gestisce data URI, escape JSON \/ e \n, virgolette, a capo MIME, - _ URL-safe, %2B %2F copiati da un URL, intestazioni PEM e padding = mancante, e mostra ogni passaggio eseguito.
Incolla {"code":0,"data":{"file":"JVBERi0…"}} così com'è. Viene usato il campo più lungo che somiglia a Base64 e ne viene mostrato il percorso (data.file), così sai quale campo è stato decodificato.
PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 e più di 40 altri formati vengono riconosciuti dai primi byte. Il download riceve l'estensione giusta anche quando il prefisso dice altro.
Segnala un PDF senza %%EOF (troncato durante la copia o dal limite di lunghezza di una colonna), Base64 codificato due volte, esadecimale incollato come Base64, dati compressi con gzip e PDF cifrati.
I PDF si aprono nel visualizzatore integrato del browser, immagini e SVG vengono mostrati, testo e JSON appaiono come testo. L'HTML non viene mai renderizzato, solo il suo sorgente, perché verrebbe eseguito in questa pagina.
Trascina un file fino a 50 MB e ottieni Base64 puro o un data URI, anche URL-safe o con a capo ogni 76 caratteri, con l'aumento di dimensione esatto.
base64.b64decode open('out.pdf', 'wb').write(base64.b64decode(s)). Usa urlsafe_b64decode per - e _; b64decode ignora gli a capo a meno che tu non passi validate=True.
java.util.Base64 Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() rifiuta gli a capo; getUrlDecoder() serve per - e _.
Buffer fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer accetta entrambi gli alfabeti e ignora gli spazi, ma salta in silenzio anche qualsiasi altro carattere non valido invece di generare un errore: verifica che il risultato inizi con %PDF-.
atob / Uint8Array.fromBase64 Costruisci un Uint8Array prima di creare il Blob. Uint8Array.fromBase64() è la funzione nativa più recente; verifica il supporto nei browser a cui ti rivolgi.
base64_decode file_put_contents('out.pdf', base64_decode($s, true)). Passa true per la modalità rigorosa, altrimenti i caratteri non validi vengono scartati in silenzio.
Convert.FromBase64String File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Gli spazi sono ammessi; - e _ no.
base64 -d / certutil macOS e Linux: base64 -d < in.txt > out.pdf. Windows: certutil -decode in.txt out.pdf.
JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · versione 1.4 · scaricato come file.pdf
Inizia con JVBERi0, cioè %PDF-. Non c'è nulla da pulire, quindi viene decodificato così com'è.
"data:application\/pdf;base64,JVBERi0xLjQK…"
Interpretato così: virgolette rimosse → escape JSON annullati → prefisso data URI rimosso (application/pdf)
Il json_encode di PHP e alcuni serializzatori Java scrivono / come \/. Se lo incolli in un decodificatore che non lo annulla, la barra rovesciata è un carattere non valido.
{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}} Interpretato così: campo data.file estratto dal JSON
Non serve ritagliare la stringa a mano. Viene usato il campo più lungo che somiglia a Base64 e ne viene mostrato il percorso.
data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Attenzione: il data URI dichiara application/pdf, ma i byte sono PNG. Salvato come file.png
Molti convertitori scriverebbero un .pdf che nessun lettore riesce ad aprire. I magic byte contano più dell'etichetta.
255044462d312e370a…
Attenzione: sembra esadecimale; letto come hex è un PDF. [Decodifica come hex]
Le cifre esadecimali sono tutte caratteri Base64 validi, quindi la decodifica Base64 non fallisce: produce in silenzio dati senza senso. 25 50 44 46 è %PDF.
Base64 puro, data:application/pdf;base64,…, una stringa copiata da un JSON con escape \/ o l'intera risposta dell'API. Per stringhe molto lunghe usa Apri un file .txt invece di incollare.
La riga sotto la casella elenca ogni passaggio di pulizia: prefisso rimosso, escape annullati, padding aggiunto, campo estratto dal JSON. Se qualcosa non va, l'errore indica il carattere esatto e la sua posizione.
Il badge mostra il tipo letto dai magic byte del file. Compare una nota gialla se in realtà non è un PDF, se il data URI dichiara un tipo falso o se il PDF è interrotto prima di %%EOF.
I PDF si aprono nel visualizzatore del browser, immagini e testo vengono mostrati nella pagina. Rinomina il file se vuoi e clicca Scarica. Per la direzione opposta, passa a PDF / file → Base64 e trascina un file.
data:application/pdf;base64, non fa parte del Base64. Se lo lasci, o viene generato un errore (: e ; non sono validi) oppure, con i decodificatori permissivi, i primi byte vengono corrotti e il file non inizia più con %PDF-.
base64.b64decode(value) # value = 'data:application/pdf;base64,JVBERi0…'
b64 = value.split(',', 1)[1] if value.startswith('data:') else value
pdf = base64.b64decode(b64) Un PDF è binario. Convertire i byte decodificati in stringa e scriverla con una codifica di testo sostituisce i byte non validi e cambia i fine riga, e così la tabella dei riferimenti incrociati si rompe.
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64').toString()) fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64')) Base64.getDecoder() di Java rifiuta gli a capo. Il Base64 delle email o del comando base64 su Linux va a capo ogni 76 caratteri. Usa il decodificatore MIME oppure rimuovi prima gli spazi.
byte[] pdf = Base64.getDecoder().decode(wrapped); // IllegalArgumentException
byte[] pdf = Base64.getMimeDecoder().decode(wrapped);
I JWT e molti parametri URL usano - e _ al posto di + e /, e omettono il padding =. Un decodificatore standard li rifiuta o decodifica byte sbagliati.
base64.b64decode(token_part) # contains - and _
base64.urlsafe_b64decode(token_part + '=' * (-len(token_part) % 4))
Nel browser atob restituisce una stringa binaria, un carattere per byte. Passarla a new Blob([str]) la codifica in UTF-8, trasformando ogni byte sopra 127 in due byte. Copiala prima in un Uint8Array.
new Blob([atob(b64)], { type: 'application/pdf' }) const bytes = Uint8Array.from(atob(b64), c => c.charCodeAt(0));
new Blob([bytes], { type: 'application/pdf' }) Un PDF termina con %%EOF. Se il Base64 è stato troncato da una colonna VARCHAR, da un limite di lunghezza delle righe di log o da una copia incompleta, il file si decodifica ma i lettori mostrano un errore o pagine mancanti. Confronta la lunghezza con quella prodotta dal mittente.
SELECT LENGTH(pdf_b64) FROM docs; -- 65535: suspiciously round
ALTER TABLE docs MODIFY pdf_b64 LONGTEXT; -- or store the bytes in a BLOB
{"filename": …, "content": "<base64>"}. Codifica qui il file per costruire una richiesta di prova in Postman o cURL.%%EOF mancante ti dice che la colonna o la riga di log era troppo corta.+ / (standard, sezione 4) e - _ (sicuro per URL e nomi di file, sezione 5). Il Base64 URL-safe di solito omette il padding =. Se una stringa li mescola, è stata modificata o unita da due fonti.= rende la lunghezza un multiplo di 4. Senza, un resto di 2 o 3 si può ripristinare; un resto di 1 è impossibile per qualsiasi Base64 valido: un carattere è andato perso o è stato aggiunto. Un = nel mezzo di solito significa che due stringhe sono state concatenate.%PDF- per i PDF, 89 50 4E 47 per i PNG, 50 4B 03 04 per i formati basati su ZIP come DOCX e XLSX. Quei byte fissano i primi caratteri del Base64, quindi il tipo si può leggere prima di decodificare: vedi la tabella nello strumento.%%EOF. Se non compare negli ultimi 1.024 byte, il file è quasi certamente stato troncato. L'intestazione può iniziare fino a 1.024 byte più avanti; la maggior parte dei lettori apre comunque questi file, quindi viene segnalato ma non rifiutato.{"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) oppure usa un data URI, così chi riceve non deve indovinare.%PDF-. Con una riga di codice intercetti campi sbagliati, doppia codifica e pagine di errore restituite in Base64.multipart/form-data o un URL di download prefirmato pesa meno su entrambi i lati.BLOB/bytea occupa un terzo in meno e non può essere troncata in silenzio come un VARCHAR. Codifica in Base64 solo al confine dell'API.data:application/pdf;base64,, le virgolette, gli a capo e gli escape JSON possono restare: vengono rimossi automaticamente. data: è stato decodificato insieme ai dati; i byte sono stati scritti come testo invece che in binario; la stringa è stata troncata (manca %%EOF alla fine); il Base64 è stato codificato due volte; oppure non è affatto un PDF, per esempio un PNG o un messaggio di errore JSON. Incolla qui la stessa stringa: ognuno di questi casi mostra un avviso specifico. JVBERi0 è PDF, iVBORw0KGgo è PNG, /9j/ è JPEG, R0lGOD è GIF, UEsDB è ZIP (e quindi DOCX, XLSX, PPTX), H4sI è gzip. Lo strumento legge i magic byte decodificati, mostra il tipo e salva il file con l'estensione corrispondente. data:application/pdf;base64,JVBERi0…. I browser lo aprono direttamente come link o src. Le API di solito vogliono solo la parte Base64 dopo la virgola. %PDF-. Il tipo mostrato è ciò che i byte sono davvero. Le sorprese più comuni sono una scansione PNG o JPEG, un DOCX, uno ZIP con più PDF, oppure un messaggio di errore JSON o HTML codificato in Base64 al posto del documento. %%EOF. Se manca, il Base64 è quasi certamente stato troncato: copiato solo in parte, tagliato da una colonna del database come un TEXT di MySQL (65.535 byte) o accorciato da un limite di lunghezza delle righe di log. Recupera di nuovo la stringa completa; la decodifica non può ricostruire dati mancanti. Codifica e formattazione
La tabella ASCII completa: 128 caratteri in decimale, esadecimale, ottale e binario, più un convertitore online testo ↔ ASCII. Ogni carattere di controllo ha il suo escape, la notazione caret e dove lo incontri.
Codifica e formattazione
Genera online EAN-13, UPC-A, Code 128, Code 39 e altri 11 tipi di codici a barre come SVG o PNG pronti per la stampa. Inserisci 12 cifre e la cifra di controllo viene calcolata: se sbagli, ti diciamo qual è quella giusta.
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Codifica e formattazione
Decodifica una stringa Base64 o un data URI in un'immagine nel tuo browser. Anteprima, dimensioni e MIME, poi scarica come PNG, JPG, GIF, SVG. Nessun upload.
Codifica e formattazione
Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.
Codifica e formattazione
Incolla il testo illeggibile e riottieni l'originale. Ogni catena di codifica plausibile — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — viene provata e ordinata, con la catena esatta in chiaro. Gratis e tutto in locale.