Hex Dump

Turn any text into an xxd-style hex dump with byte offsets, hex bytes, and an ASCII gutter — runs 100% in your browser with no upload.

Hex dump
00000000  48 65 6c 6c 6f 2c 20 57  6f 72 6c 64 21           |Hello, World!|

🔒 Encoded in your browser — nothing is uploaded.

What this tool does

Hex Dump converts whatever you type or paste into a classic hexadecimal dump, the same layout you get from command-line tools like xxd or hexdump -C. Each row shows an 8-digit hexadecimal byte offset, then the next 16 bytes as two groups of eight lowercase hex pairs, followed by an ASCII gutter between | bars. Printable characters (bytes 32–126) appear as themselves and every other byte, including control codes and multi-byte characters, is shown as a dot. The dump updates live as you edit.

How the bytes are counted

Your text is UTF-8 encoded before it is dumped, so a plain letter is one byte while an accented letter, emoji, or CJK character spans two to four bytes. That means the hex you see is exactly what a program would read from a UTF-8 file, which makes this handy for spotting hidden characters, checking encodings, inspecting invisible whitespace, or learning how text maps to raw bytes.

Frequently asked questions

What encoding is used to produce the bytes?

UTF-8. The text is encoded with the browser's TextEncoder, so ASCII characters are one byte and characters like é, €, or 한 take two to four bytes each — the same bytes you would find in a UTF-8 file.

Why do some characters show as a dot in the ASCII column?

The ASCII gutter only prints bytes 32 through 126, the printable range. Control codes such as newline or tab, and the extra bytes of multi-byte characters, have no printable glyph, so they are shown as '.' to keep the columns aligned.

Is any of my text uploaded to a server?

No. The hex dump is generated entirely in your browser with JavaScript. Nothing you type is sent, stored, or uploaded anywhere.