Hex dump
Turn text into a classic hexdump with offsets and an ASCII gutter, or read one back.
Hex dump
A hex dump is how a file looks when you stop trusting what an editor shows you and read the raw bytes instead. This tool lays out the UTF-8 bytes of your text in the familiar hexdump -C layout: an 8-digit offset on the left, sixteen bytes per row written as two-digit hex pairs, and an ASCII gutter on the right where every printable byte shows as itself and everything else — tabs, newlines, control codes, the high bytes of a multi-byte character — shows as a dot. An extra space splits each row down the middle, the way xxd and hexdump do, so you can count to the eighth byte without losing your place.
Reading a dump is the job it does best. A stray zero-width space, a non-breaking space masquerading as a normal one, a Windows CRLF where you expected a bare newline, an emoji that is quietly four bytes long — all of them are invisible in ordinary text and obvious the moment you see the bytes. The offset column tells you exactly how far into the input a surprising byte sits, which is what you need when a parser rejects line 1 for no reason you can see.
Switch the mode to go the other way: paste a dump — from this tool, from xxd, from hexdump -C, or just loose hex like 48 65 6c 6c 6f — and get the original text back. The parser ignores the offset column and the ASCII gutter, tolerates the 2-byte grouping xxd uses, and strips 0x or \x prefixes, so a copy-paste out of a terminal usually just works. The uppercase option writes A-F instead of a-f for formats that expect it.
Everything runs locally in your browser using its built-in UTF-8 encoder. Nothing is uploaded, which matters when the bytes you are inspecting came from a token, a payload or a private file. The tally under the output counts bytes and rows so multi-byte characters are easy to spot.