Paste a base64 string, or a data URL starting with data:, and it is split
into its parts and read back to you.
What sets it apart: it names only the things that raise no error.
It says data:image/png but the content is JPEG;
the leftover bits are not 0, so a different string decodes to the same bytes;
;base64 was left out, so the content is taken as literal text —
none of these stop anything, and everything keeps working.
Decoding is written from scratch rather than with atob, and it is checked against
the browser's own on every load.
This page makes no network requests at all.
Splitting and decoding both happen entirely in your browser. Once it has loaded, it keeps
working in airplane mode.
Nothing you paste is ever sent anywhere.
1. Paste
2. Split into parts
3. What is inside
The leading bytes
4. Easy to miss
Nothing found.
5. Or go the other way
Type some text and it becomes base64 and a data URL. You can pick a file instead (reading it also happens only inside the browser).
Self-check (run just now, in this browser)
Both decoding and encoding in this tool are written from scratch.
Whether they agree with the browser's atob / btoa / TextDecoder
is checked on the spot every time the page opens, and the result is printed here.
What this tool looks at, and what it does not
The type is decided from the leading bytes (the magic number) alone.
It does not go on to check whether the content is actually intact. "It starts with a PNG
header" does not mean "it is a PNG you can open".
Anything starting like a ZIP looks the same whether it is docx, xlsx, pptx, epub or jar.
Telling them apart means reading the mimetype inside, so they are all shown as ZIP.
Only images are previewed. SVG and HTML are not rendered on this page even when
their content is safe (rendering them would run any script inside with this page's privileges).
It does not reject anything. Even for a form that breaks the spec, it reads as far as
it can and names what is wrong (it is not a conformance checker).
The table mapping MIME types to content covers the major formats only.
A declared MIME type that is not in the table is never called a mismatch.