🔣 Hex Dump Viewer
By ToolNimba Web Dev Team · Updated 2026-06-19
Enter text and press Make hex dump.
A hex dump is the standard way to look at the raw bytes behind a piece of text or a file. This viewer takes whatever you paste, encodes it to UTF-8 bytes, and lays them out in the classic three-column format: a byte offset on the left, the bytes as two-digit hexadecimal in the middle, and a printable-ASCII gutter on the right with dots standing in for control or non-printable bytes. Type anything and copy the dump straight out, nothing is uploaded.
What is the Hex Dump Viewer?
A hex dump shows you the exact bytes that make up some data, which is invaluable when characters that look identical on screen are actually different under the hood. Each byte is one value from 0 to 255, written as two hexadecimal digits (00 to FF). Reading text as hex lets you spot a hidden tab, a Windows carriage return before a line feed, a byte-order mark, or a smart quote that a plain editor would never reveal. Programmers, reverse engineers and protocol debuggers reach for hexdump output constantly for exactly this reason.
The layout here follows the convention popularised by Unix tools such as hexdump and xxd. The first column is the offset: the position of the first byte on that row, counted from the start and printed in hex, zero-padded to at least eight digits. Because each row holds 16 bytes by default, the offsets step up by 16 (0x10) each line: 00000000, 00000010, 00000020, and so on. The middle block prints those 16 bytes as space-separated hex pairs. The final block, framed by pipe characters, is the ASCII gutter: every byte in the printable range (0x20 space through 0x7E tilde) is shown as its character, and everything else becomes a dot so the columns stay aligned.
The one subtlety worth understanding is encoding. Text on the web is not stored as characters but as bytes, and the mapping between them is the character encoding. This tool uses UTF-8, the dominant encoding of the modern web. In UTF-8 the plain ASCII letters each take a single byte, so 'A' is 41 and 'z' is 7A, but accented letters, emoji and most non-Latin scripts take two, three or four bytes each. That is why a single visible emoji can fill four hex pairs and show up as four dots in the ASCII gutter: it is one character but several bytes.
When to use it
- Spotting invisible characters such as tabs, trailing spaces, carriage returns or a byte-order mark that a normal text editor hides.
- Teaching or learning how UTF-8 encodes ASCII, accented letters and emoji into one or more bytes each.
- Inspecting the exact bytes of a token, key fragment or protocol message while debugging an API or parser.
- Producing a clean hexdump to paste into a bug report, forum question or code review so others see the precise bytes.
How to use the Hex Dump Viewer
- Type or paste your text into the input box.
- Optionally tick Uppercase hex or change how many bytes appear per row (8, 16 or 32).
- Press Make hex dump to generate the offset, hex and ASCII columns.
- Read the dump or press Copy to put it on your clipboard.
Formula & method
Worked examples
Dumping the text "Hi" (two ASCII characters).
- TextEncoder gives UTF-8 bytes: H = 0x48, i = 0x69.
- Offset of the first (and only) row is 0, written as 00000000.
- Hex column lists the bytes: 48 69 (then padding to fill the row).
- ASCII gutter: 0x48 and 0x69 are both printable, so it reads |Hi|.
Result: 00000000 48 69 |Hi|
Dumping "A\tB" where \t is a tab character.
- Bytes are A = 0x41, tab = 0x09, B = 0x42.
- The tab (0x09) is below 0x20, so it is non-printable.
- Hex column shows 41 09 42.
- In the ASCII gutter the tab becomes a dot: |A.B|.
Result: 00000000 41 09 42 |A.B|
Common bytes and how they appear in the dump
| Character | Hex byte | ASCII gutter |
|---|---|---|
| Space | 20 | space |
| Digit 0 | 30 | 0 |
| Letter A | 41 | A |
| Letter a | 61 | a |
| Tab (control) | 09 | . |
| Line feed (newline) | 0a | . |
| Euro sign (UTF-8) | e2 82 ac | ... |
Common mistakes to avoid
- Expecting one byte per character. Only plain ASCII maps to a single byte in UTF-8. Accented letters take two bytes, most symbols and CJK characters take three, and emoji take four, so the byte count is often larger than the character count.
- Confusing the offset with a byte count. The left column is the position of the first byte on that row, not a tally. With 16 bytes per row the offsets jump by 16 (0x10) each line: 00000000, 00000010, 00000020.
- Reading dots as literal periods. A dot in the ASCII gutter means the byte was outside the printable range (below 0x20 or above 0x7E), not that the data contained a period. An actual period is the byte 0x2E, shown as 2e in the hex column.
- Assuming the encoding is something other than UTF-8. This tool always encodes as UTF-8. The same text in Latin-1, UTF-16 or another encoding would produce different bytes, so compare like with like when matching against another dump.
Glossary
- Hex dump
- A view of raw data as hexadecimal byte values, usually alongside an offset column and an ASCII gutter.
- Byte
- A unit of data holding a value from 0 to 255, written here as two hexadecimal digits (00 to FF).
- Offset
- The position of a byte counted from the start of the data, shown in hex in the left column.
- Hexadecimal
- Base-16 notation using the digits 0 to 9 and letters a to f, where one hex digit covers four bits.
- ASCII gutter
- The right-hand column that prints each printable byte as its character and replaces non-printable bytes with a dot.
- UTF-8
- The dominant text encoding of the web, using one to four bytes per character and matching ASCII for the first 128 codes.
Frequently asked questions
What is a hex dump?
A hex dump is a representation of raw data where each byte is shown as a two-digit hexadecimal value, typically with an offset column on the left and a printable-ASCII gutter on the right. It lets you see the exact bytes behind text or a file, including characters a normal editor hides.
How do I convert text to a hex dump here?
Paste your text into the input box and press Make hex dump. The tool encodes the text to UTF-8 bytes and lays them out as an offset column, hexadecimal byte columns and an ASCII gutter, exactly like the classic hexdump and xxd command-line tools.
What encoding does the tool use?
It uses UTF-8, the standard encoding of the modern web. Plain ASCII letters take one byte each, while accented letters, symbols and emoji take two to four bytes, which is why the byte count can exceed the number of visible characters.
Why are some characters shown as dots?
The ASCII gutter only prints bytes in the printable range, 0x20 (space) through 0x7E (tilde). Control characters such as tab, newline and carriage return, as well as the continuation bytes of multi-byte UTF-8 sequences, are shown as dots so the columns stay aligned.
What does the offset column mean?
The offset is the position of the first byte on each row, counted from the start of the data and written in hexadecimal, zero-padded to eight digits. With 16 bytes per row it increases by 16 (0x10) on each line.
Is my text uploaded anywhere?
No. The conversion runs entirely in your browser using the built-in TextEncoder, so nothing you type is sent to a server. You can use the tool offline once the page has loaded.