Home › Developer Tools › Hex to Text Converter

Hex to Text Converter

Decode hexadecimal bytes into readable text, or turn text into hex, with correct UTF-8 handling for accents, symbols and emoji. Paste hex in almost any format: spaces, 0x, \x, commas or none. Everything runs in your browser.

Character and byte breakdown
Advertisement

How to use the Hex to Text Converter

  1. Pick a direction: Hex → Text to decode, or Text → Hex to encode.
  2. Paste your input. Hex can be written as 48656c6c6f, 48 65 6c, 0x48,0x65 or \x48\x65; separators are detected automatically.
  3. Choose the encoding: UTF-8 is right for almost all modern text; use ISO-8859-1 for legacy single-byte text.
  4. Set the hex format and letter case when encoding, then press Convert.
  5. Copy the result, swap directions, or download the bytes as a file. Open the breakdown to inspect each character.

ASCII hex reference

HexCharHexCharHexCharHexChar
20space30041A61a
21!31142B62b
22"39948H65e
2C,3A:4FO6Fo
2E.3F?5AZ7Az
0Aline feed (LF)0Dcarriage return (CR)09tab7FDEL

Upper-case letters run from 41 (A) to 5A (Z), lower-case from 61 (a) to 7A (z), and digits from 30 (0) to 39 (9). Adding 20 to an upper-case letter gives the lower-case one.

UTF-8 byte patterns

Code pointsBytesFirst byteExample
U+0000 – U+007F100–7FA → 41
U+0080 – U+07FF2C2–DFé → C3 A9
U+0800 – U+FFFF3E0–EF€ → E2 82 AC
U+10000 – U+10FFFF4F0–F4😀 → F0 9F 98 80

Continuation bytes always fall between 80 and BF. A byte order mark (BOM) at the start of a UTF-8 file is EF BB BF; in UTF-16 it is FF FE (little-endian) or FE FF (big-endian).

Where you meet hex text

  • Programming: escape sequences like "\x48\x69" in C, Python and JavaScript, and byte arrays like {0x48, 0x69}.
  • URLs: percent-encoding writes bytes as %E2%82%AC; for whole URLs use the URL Encoder Decoder.
  • Networking and forensics: packet captures, hex dumps and MAC addresses use colon or space separated bytes.
  • CTF and puzzles: hidden messages are often hex, binary or Base64; see the Binary Translator and Base64 Encoder Decoder.

Frequently asked questions

How do I convert hex to text?

Each pair of hex digits is one byte (00 to FF). The bytes are then decoded with a character encoding: in ASCII and UTF-8, 48 is H, 65 is e and 6C is l, so 48 65 6C 6C 6F is Hello. Paste the hex and the text appears instantly.

Why do some characters take several bytes?

UTF-8 uses 1 byte for ASCII characters, 2 bytes for most accented Latin, Greek and Cyrillic letters, 3 bytes for most other scripts and symbols like € (E2 82 AC), and 4 bytes for emoji such as 👋 (F0 9F 91 8B). This tool decodes and encodes those sequences correctly.

What is the difference between hex to ASCII and hex to UTF-8?

ASCII only defines bytes 00–7F, so it covers English letters, digits and basic punctuation. UTF-8 is identical for those bytes and adds multi-byte sequences for every other character. Choosing UTF-8 is safe for ASCII data too.

Why do I get an odd number of hex digits error?

Every byte needs exactly two hex digits. If the input has, for example, 9 digits, one byte is incomplete; a digit may be missing or a stray character was pasted. With separators, single digits like 0x5 are padded to 05 automatically.

What does the � character mean?

It is the Unicode replacement character. It appears when the bytes are not valid in the selected encoding, for example a lone C3 byte in UTF-8, or bytes above 7F in ASCII mode. Try ISO-8859-1 for older files.

Is my data uploaded?

No. Conversion uses the browser's own TextEncoder and TextDecoder plus plain JavaScript. Nothing leaves your device.

Related tools