Hex to Text Converter
Encoding ToolsConvert hexadecimal byte sequences to readable ASCII or UTF-8 text with flexible input formatting.. Free, private — all processing in your browser.
The Hex to Text tool converts hexadecimal byte sequences into readable text. Hexadecimal represents each byte as two hex digits (00-FF), making it much more compact than binary while remaining human-readable. \"48 69\" in hex is the ASCII for \"Hi\". Decoding hex back to text is common when reverse engineering data formats, reading hexdump output, decoding URL-encoded bytes, or handling binary data that was transmitted as hex text.
The tool accepts hex in every common format: space-separated bytes (48 69), with 0x prefixes (0x48 0x69), continuous without separators (4869), and with any common delimiter (48-69, 48,69). ASCII mode decodes each byte as a character. UTF-8 mode handles multi-byte sequences correctly for Unicode characters, emoji, and non-Latin scripts. Reverse conversion (text to hex) is handled by the companion tool. All processing runs in your browser so confidential hex data (keys, tokens, scraped protocol data) never leaves your machine.
Hex to Text Converter — key features
Flexible input parsing
Accepts hex with spaces, dashes, commas, 0x prefixes, or continuous form.
ASCII and UTF-8 output
Decodes as plain ASCII or multi-byte UTF-8 for correct emoji and non-Latin character support.
Case insensitive
48 69, 48 69, and 48 69 all work — uppercase and lowercase hex treated identically.
Non-printable visualization
Control characters shown as escape sequences so you know what’s in the data.
Byte count
Shows the number of bytes decoded and character count for UTF-8.
Error highlighting
Odd digit counts, invalid hex characters, or incomplete UTF-8 sequences flagged precisely.
Copy output
One-click copy the decoded text to clipboard.
Client-side only
Hex data never leaves your browser; safe for confidential protocol or key data.
How to use the Hex to Text Converter
- 1
Paste hex
Drop your hex string into the input — any common separator and 0x prefix are handled.
- 2
Choose output encoding
ASCII (7-bit, English only) or UTF-8 (full Unicode, recommended default).
- 3
See decoded text
The converted text appears immediately below.
- 4
Check warnings
If hex has odd digit count or non-printable bytes, warnings appear with suggestions.
- 5
Copy
One-click copy to clipboard.
Common use cases for the Hex to Text Converter
Debugging
- →Hexdump reading: Decode the right-side text column of a hexdump when you need to read the actual content.
- →Protocol analysis: Decode text embedded in binary protocols during reverse engineering.
- →Log file investigation: Interpret hex-encoded payloads in logs where only printable characters were allowed.
Development
- →Token decoding: Decode hex-encoded tokens or signatures to understand their structure.
- →BLOB inspection: Database BLOB columns often display as hex; decode to see the embedded text.
- →Test data: Convert hex test fixtures to their text form for human review.
Education
- →Learning hex encoding: Verify manual hex-to-ASCII conversions when doing homework exercises.
- →Character encoding lessons: See how UTF-8 represents non-ASCII characters as multi-byte hex sequences.
- →Puzzle solving: CTF challenges often include hex-encoded text as an early decoding step.
Hex to Text Converter — examples
Simple ASCII
Hex bytes decoded to a short word.
48 69
Hi
With 0x prefix
Programming-style hex.
0x48 0x65 0x6C 0x6C 0x6F
Hello
Continuous
No separators.
48656C6C6F
Hello
UTF-8 accented
Multi-byte sequence.
63 61 66 C3 A9
café (C3 A9 is é in UTF-8)
Emoji
4-byte UTF-8 sequence.
F0 9F 98 80
😀 (grinning face)
Technical details
Hexadecimal is base-16 (0-9 and A-F). Each byte (8 bits) fits in exactly 2 hex digits: 00 (zero) through FF (255). This makes hex a compact, human-readable encoding for binary data — much easier than pure binary (8 bits per byte) and more compact (2 hex digits = 8 bits = 1 byte).
Hex-to-byte parsing:
1. Strip all whitespace and common separators (spaces, commas, dashes)
2. Strip 0x or \\x prefixes
3. Group remaining hex digits into pairs (each pair is one byte)
4. Convert each pair to its numeric byte value (0-255)
If the total number of hex digits is odd, the input is invalid — bytes must come in complete pairs.
Bytes to text:
- ASCII: each byte value 0-127 maps to an ASCII character. Values 128-255 are outside ASCII and either get shown as replacement characters or trigger a warning.
- UTF-8: the byte sequence is decoded as UTF-8, handling 1-4 byte sequences for Unicode codepoints.
Common hex encoding contexts:
- URL encoding: %48%69 (hex with % prefix) — use the URL Encoder tool for these
- HTTP hexdump: 48 69 across aligned columns with ASCII sidebar
- Database BLOB display: 0x48692148 — continuous with single prefix
- Programming language: 0x48, 0x69 — comma-separated with prefixes
The tool handles all these forms by stripping prefixes and normalizing before parsing.
UTF-8 multi-byte handling: starts with 110xxxxx (2-byte), 1110xxxx (3-byte), or 11110xxx (4-byte), followed by 10xxxxxx continuation bytes. The tool detects these patterns and decodes sequences correctly.
Non-printable characters: bytes 0x00-0x1F (except common whitespace) and 0x7F don\u2019t have visible glyphs. The tool shows them as escape sequences (\\x00, \\n, \\t) or Unicode replacement character.
Performance: hex decoding is O(n) and very fast. Multi-megabyte hex converts in milliseconds.
Common problems and solutions
⚠Odd number of hex digits
Each byte requires 2 hex digits. "4869" is 2 bytes (Hi); "486" is invalid. Always even-length hex. The tool reports and highlights the problem.
⚠Invalid hex characters
Hex uses only 0-9 and A-F. Characters outside this range (like G or !) are rejected. Double-check your input; a common mistake is confusing hex and base64.
⚠ASCII mode fails on non-English
ASCII only covers 0-127. Bytes 128-255 in ASCII mode produce replacement characters or errors. Use UTF-8 mode for any content that might include non-English text.
⚠Mixed separators confuse parser
Spaces and commas in the same string can cause parsing errors. Normalize to one separator (or strip all separators) before decoding.
⚠Partial UTF-8 sequence
UTF-8 multi-byte characters span 2-4 bytes. If your hex ends mid-sequence, the last character is incomplete. The tool flags partial sequences.
⚠Big-endian vs little-endian
For multi-byte hex data like integers, byte order (endianness) matters. For UTF-8 text, byte order is fixed (big-endian). Don’t reverse UTF-8 bytes thinking it’s a number.
⚠URL-encoded hex
URLs encode bytes as %48%69 with % prefixes. The Hex to Text tool handles 0x prefixes but not %. Use the URL Decoder tool for URL-encoded bytes.
Hex to Text Converter — comparisons and alternatives
Compared to a Python one-liner (bytes.fromhex(hex_str).decode()), this tool is faster for one-off decoding and visualizes the byte-to-character mapping clearly.
Compared to command-line xxd -r -p, this tool has a browser UI and handles UTF-8 correctly. xxd is better for pipelines; this tool for interactive work.
Compared to other online hex decoders, this one handles UTF-8 multi-byte sequences reliably (many assume ASCII only) and supports multiple input formatting conventions.
Frequently asked questions about the Hex to Text Converter
▶How do I convert hex to text?
Paste the hex bytes (48 69, 0x48 0x69, or 4869 — all work) and the tool converts to text. Default output is UTF-8 which handles ASCII plus any Unicode characters correctly.
▶What hex formats does the tool accept?
Space-separated (48 69), with 0x prefixes (0x48 0x69), with \\x prefixes (\\x48\\x69), comma-separated (48,69), dash-separated (48-69), or continuous with no separators (4869). The parser handles all common variants.
▶Case sensitivity of hex?
Hex is case-insensitive. 48 69, 48 69, and 48 69 all decode identically. Most style guides prefer uppercase A-F for hex literals; others prefer lowercase. The tool accepts both.
▶How does UTF-8 hex decoding work?
UTF-8 encodes characters in 1-4 bytes. The tool detects multi-byte sequences by looking at the high bits of each byte: 0xxxxxxx is single byte (ASCII), 110xxxxx starts a 2-byte sequence, 1110xxxx starts a 3-byte sequence, 11110xxx starts a 4-byte sequence. Continuation bytes start with 10xxxxxx.
▶What if the hex has an odd number of digits?
Each byte needs exactly 2 hex digits. An odd number is invalid. Check for missing or extra digits. Also consider that some hex streams may have leading zero padding (08 rather than 8) — the tool expects explicit 2-digit bytes.
▶Can I convert long hex strings?
Yes. Tested with multi-megabyte hex input converting in under a second. No size limit beyond your browser’s memory for holding the input and output.
▶How do I convert text to hex?
Use the companion Text to Hex tool — paste text and get hex bytes in your chosen format. Round-tripping (text → hex → text) should return the original exactly.
▶Is my hex input private?
Yes. All decoding happens in your browser. Hex data (which may contain secrets, keys, or sensitive protocol content) stays local.
Additional resources
- ASCII table with hex — Complete ASCII character reference with hex, decimal, and binary values.
- UTF-8 encoding (RFC 3629) — Authoritative standard for UTF-8 byte-sequence encoding.
- MDN TextDecoder — Browser API used for correct UTF-8 hex decoding.
- Wikipedia — Hexadecimal — General background on hexadecimal notation and its uses.
- Unicode character conversion — Unicode Consortium FAQ on UTF-8 and related encodings.
Related tools
All Encoding ToolsBase64 Encoder/Decoder
Encode and decode Base64 strings, files, and images instantly
Binary to Text Converter
Convert binary code (0s and 1s) to readable text in ASCII or Unicode, with configurable grouping and separator options.
HTML Entity Encoder/Decoder
Encode special characters to HTML entities (&, <, ", ©) or decode entities back to their literal characters.
Morse Code Translator
Translate between text and Morse code with support for letters, numbers, punctuation, and audio playback of the encoded signal.
Number Base Converter
Convert numbers between binary, octal, decimal, hexadecimal, and any base from 2 to 36 with clear step-by-step output.
ROT13 Encoder/Decoder
Apply the ROT13 cipher to any text — letters rotate 13 positions in the alphabet. Self-inverse, so the same tool encodes and decodes.
Learn more
Explore more tools
200+ free tools that run in your browser.
Browse all tools →