Skip to main content
HexConverter

Hex to Text Converter

Decode hexadecimal byte strings to readable ASCII and UTF-8 strings. Features strict 2-digit byte validation, invalid UTF-8 sequence diagnostics, and dual-encoding support.

Try samples:
Target Encoding:
Accepts spaces, commas, 0x, and \x prefixes
Decoded Plain Text (UTF-8)
Swap ⇄
Hello
Bytes decoded: 5•Decoded characters: 5•TextDecoder Stream Compliant
Runs 100% in your browser. Nothing you enter is sent over the network.

Decoding Hex Byte Streams to Readable Text

Translating raw hexadecimal dumps back into text requires reversing the encoding process:

  1. Strip prefixes such as 0x, \x, and whitespace separators.
  2. Confirm that the total digit count is even (divisible by 2).
  3. Parse each pair of characters as an 8-bit byte value between 0x00 and 0xFF (0 to 255).
  4. Feed the byte array into a compliant stream decoder (TextDecoder).

For a complete 0 to 127 ASCII symbol lookup, visit our Standard ASCII Table.

Verified Worked Examples

Example 1: 48 65 6C 6C 6F to Text

Input:48 65 6C 6C 6F
→
Result:"Hello"

Five standard ASCII letters.

0x48 = 'H'
0x65 = 'e'
0x6C = 'l'
0x6C = 'l'
0x6F = 'o'

Example 2: Full Greeting Sentence

Input:48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
→
Result:"Hello, World!"

Includes comma (0x2C), space (0x20), and exclamation (0x21).

0x2C = ','
0x20 = ' ' (Space)
0x21 = '!'

Example 3: Multi-Byte UTF-8 Sequence

Input:C3 A9
→
Result:"é" (UTF-8)

Two-byte sequence for French accent letter.

Bytes: 195, 169
Decodes to U+00E9 in UTF-8
Decodes to 'é' if misparsed in Latin-1

Example 4: 4-Byte Emoji Sequence

Input:F0 9F 98 80
→
Result:"😀"

Grinning face emoji.

Four bytes: 0xF0, 0x9F, 0x98, 0x80
Evaluated as Unicode code point U+1F600

Frequently Asked Questions

Direct answers to technical and practical questions regarding this tool and base-16 conversion.

How do you decode a hexadecimal byte string to text?

Group the hex digits into pairs of two (each pair represents one 8-bit byte). Convert each pair to its numerical value (0–255), and look up the corresponding character using the target encoding scheme (such as UTF-8 or ASCII). For example, 0x48 is 72, which is "H"; 0x69 is 105, which is "i" → "Hi".

What does "Odd number of hexadecimal digits" mean?

In computer memory and network packets, bytes are 8 bits, which requires exactly two hexadecimal digits (e.g. 0x0A, 0xFF). If your input has an odd number of digits (like 5 digits), it indicates that one byte is missing a digit or was improperly formatted without a leading zero.

What is a "replacement character" ( or U+FFFD)?

When a byte stream is decoded as UTF-8, it must obey strict prefix rules (RFC 3629). If a byte sequence violates UTF-8 rules—such as an unexpected continuation byte or an overlong sequence—standard decoders substitute the Unicode replacement character () rather than crashing.

Why does C3 A9 decode to "é" in UTF-8 but "é" in Latin-1?

Because UTF-8 treats C3 A9 as a single 2-byte sequence representing the code point U+00E9 (é). In Latin-1, every single byte is decoded individually: 0xC3 is "Ã", and 0xA9 is "©". Decoding UTF-8 text as Latin-1 is a frequent cause of mojibake (garbled text).

Related Conversion Tools & Resources

Explore companion converters, bitwise arithmetic calculators, and reference charts.

Sources & Technical References

Technical Verification & Editorial Accountability

Written by Sarah Chen (Embedded Systems Engineer) • Verified by Marcus Brody, PE

Reviewed: 2026-10-02MethodologyEditorial PolicyReport Error