Hex to Text Converter

Quick answer

The hex to text converter decodes hexadecimal bytes – with or without spaces, 0x or \x prefixes – into readable text using UTF-8, UTF-16 or Windows-1252, and shows each character’s code point and the same bytes in binary and decimal.

Result
Hello, world
Same bytes in binary
01001000 01100101 01101100 01101100 01101111 00101100 00100000 01110111 01101111 01110010 01101100 01100100
Bytes in decimal
72 101 108 108 111 44 32 119 111 114 108 100
Number of bytes
12
Number of bits
96
Number of characters
12
Character by character
Char Code point Bytes (hex) ──────────────────────────────── H U+0048 48 e U+0065 65 l U+006C 6C l U+006C 6C o U+006F 6F , U+002C 2C space U+0020 20 w U+0077 77 o U+006F 6F r U+0072 72 l U+006C 6C d U+0064 64

Hex strings appear in log files, packet captures, database dumps, QR payloads, URL encoding and CTF puzzles. Reading them means pairing up the digits into bytes, turning each pair into a number and decoding the byte sequence with the right character set – exactly what this tool does in one step.

The decoder is forgiving about formatting: “48656C6C6F”, “48 65 6C 6C 6F”, “0x48,0x65” and “x48x65” all work. Each pair becomes one byte, and the byte sequence is decoded as UTF-8 by default. If the text came from an older Windows program, try Windows-1252; if every second byte is 00, it is almost certainly UTF-16 (choose LE when the zeros come second).

Bytes below 20 (hex) are control codes such as line feed (0A), carriage return (0D) or form feed (0C). They do not produce visible letters, so the tool shows them as small symbols and mentions them in the note.

How to use the Hex to Text Converter

  1. Direction
  2. Hex code
  3. Character encoding
  4. Separator between bytes
  5. Custom separator

Everything is calculated in your browser, so results appear instantly and nothing you type is sent to a server.

How it works

Prefixes and separators are removed, the remaining digits are read in pairs, and each pair is converted from base 16 to a byte. The byte list is decoded with the chosen encoding; invalid sequences are shown as � and counted in the note.

Worked example

Decode 48 65 6C 6C 6F 2C 20 77 6F 72 6C 64. 48 = 4 × 16 + 8 = 72 = H, 65 = 101 = e, 6C = 108 = l (twice), 6F = 111 = o, 2C = 44 = comma, 20 = 32 = space, 77 = 119 = w, 6F = o, 72 = 114 = r, 6C = l, 64 = 100 = d. The message is Hello, world – 12 bytes, 12 characters.

Common byte values

Hex Decimal Character
09 9 Tab
0A 10 Line feed (new line)
0D 13 Carriage return
20 32 Space
30–39 48–57 Digits 0–9
41–5A 65–90 A–Z
61–7A 97–122 a–z

Formula

Byte = 16 × first hex digit + second hex digit (A = 10 … F = 15) Bytes → characters with the chosen encoding

Worked example

Inputs — Direction: Hex → text; Hex code: 48 65 6C 6C 6F 2C 20 77 6F 72 6C 64; Character encoding: UTF-8 (Unicode – recommended); Separator between bytes: Space.
Results — Result = Hello, world; Same bytes in binary = 01001000 01100101 01101100 01101100 01101111 00101100 00100000 01110111 01101111 01110010 01101100 01100100; Bytes in decimal = 72 101 108 108 111 44 32 119 111 114 108 100; Number of bytes = 12; Number of bits = 96; Number of characters = 12.

Key terms

Hex dump
A listing of raw bytes as hexadecimal pairs.
Mojibake
Garbled text caused by decoding bytes with the wrong encoding.
Control code
A non-printing character such as line feed (0A) or tab (09).
Prefix 0x
A common marker meaning “the following digits are hexadecimal”.

Frequently asked questions

What does 48 69 mean?

“Hi”: 0x48 = 72 = “H” and 0x69 = 105 = “i”.

How do I convert hex to text manually?

Split into pairs, convert each pair to decimal (first digit × 16 + second digit) and look the number up in an ASCII table.

Can I paste hex without spaces?

Yes – a continuous string is cut into pairs; it must have an even number of digits.

Why are there 00 bytes between the letters?

The text is UTF-16. Choose UTF-16LE if the 00 follows each letter byte, or UTF-16BE if it comes first.

What is 0D 0A?

Carriage return + line feed, the Windows line ending.

What is FF + 1 in hex?

100 (hex), which is 256 in decimal – it no longer fits in one byte.

Why does the result show é instead of é?

That is UTF-8 read as Windows-1252 (mojibake). Switch the encoding to UTF-8.

Sources

  1. RFC 3629 – UTF-8, a transformation format of ISO 10646
  2. RFC 2781 – UTF-16, an encoding of ISO 10646
  3. Unicode Consortium – Windows-1252 to Unicode mapping table (CP1252.TXT)

Cite this calculator

Speedy Calculator. (2026). Hex to Text Converter. Speedy Calculator. https://speedycalculator.com/calculators/other/hex-to-text/