Text to hex

See the exact bytes a string becomes in UTF-8, written in hex.

Tier 0 · browser · unlimited
Reverse conversion
6 characters
Hex (UTF-8 bytes)
43 61 66 c3 a9 20 e2 98 95

Why look at text in hex

When a string misbehaves (a mysterious character in a CSV, a signature that will not match, an API that rejects a name), the fastest diagnosis is to look at its bytes. Hex shows each byte as two characters, so 48 69 is Hi and c3 a9 is é in UTF-8. Invisible characters suddenly become visible: a non-breaking space is c2 a0, a zero-width space e2 80 8b, a Windows line ending 0d 0a.

Hex strings are also what you paste into protocol tools, byte arrays in code and test fixtures.

Worked example

Café → 43 61 66 c3 a9. The first three bytes are plain ASCII letters; c3 a9 is the two-byte UTF-8 form of é. If the same word were saved as Latin-1, the last byte would be e9 instead, which is why mixing encodings garbles accented text.

How this works

The page encodes your text as UTF-8 and writes each byte as two hexadecimal digits, in lowercase or uppercase, with or without spaces between bytes. ASCII characters give one byte each; accented letters two; most other scripts three; emoji four. Spaces, tabs and line breaks are encoded like any other character, which makes hidden whitespace easy to spot. Switch to Decode for the reverse. Everything runs in this tab.

Frequently asked

What is the hex for a space?

20. A non-breaking space is c2 a0 in UTF-8, a frequent cause of strange spacing.

Why does é become two bytes?

UTF-8 stores characters beyond ASCII in two to four bytes; é is c3 a9.

Is this the same as the Unicode code point?

No. These are UTF-8 bytes. The code point of é is U+00E9; use the Unicode converter for code points.

Is my text uploaded?

No. It is converted in your browser.

Sources

Reviewed Oct 17, 2026 · test vectors fixtures/dev/text-to-hex/