About Text to Hex
Every character encoded as UTF-8 becomes one or more bytes, and this tool writes each byte as a two-digit hexadecimal number separated by spaces — H is 48, i is 69, and a Chinese character becomes three such pairs. Hex is the conventional way to talk about bytes because two digits map exactly onto one byte, with no wasted width and no ambiguity.
That exact mapping is why hex is the format that shows up in the places where byte-level precision matters: network packet captures, hash digests, memory dumps, character-set debugging and magic-number checks at the start of a file. Decimal would need three digits for the same range and binary eight, making both far harder to scan by eye.
A useful consequence for debugging: the first bytes of a file identify its type (a PNG begins with 89 50 4E 47), and the byte sequence of a piece of text shows immediately which encoding produced it. Seeing three pairs per character instead of one tells you the text is not Latin-1.
How to use Text to Hex
- 1 Type or paste the text you want to inspect as bytes.
- 2 Each UTF-8 byte is shown as a two-digit hex value, space-separated, updating as you type.
- 3 Copy the output into a packet capture comparison, a test fixture, or an encoding investigation.
Frequently asked questions
Why does each non-Latin character produce three hex pairs?
Because UTF-8 uses three bytes for characters in the CJK range, and each byte is written as two hex digits. Latin letters fit in one byte, so they show as a single pair — the pair count is your quickest read on which encoding is in play.
Should the hex be uppercase or lowercase?
Either is valid and both mean the same value. Conventions differ by context: protocol specifications usually show uppercase, while many programming tools print lowercase. Decoders accept both, so this is a matter of matching the surrounding document.
How is this different from the Hash tools, which also output hex?
The relationship is one-to-one here — the same text always produces the same hex, and the hex converts straight back to the text. A hash digest is a fixed-length value derived from the input, and you cannot reverse it to recover what you hashed.
Can I convert the hex back?
Yes. The Hex to Text tool reads space-separated hex pairs and reconstructs the text, so the two tools form a reversible pair. Preserving the byte separators is what keeps the round trip exact.
Free, online, and private
Free to use
Text to Hex is completely free. There is no account to create, no login, and no hidden charge or usage limit.
Runs online in your browser
It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.
Your data stays private
All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.
How Text to Hex behaves in detail
These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.
| Parameter | Value |
|---|---|
| Digits per group | 2, lowercase, with no 0x prefix |
| Byte source | UTF-8 via TextEncoder, so multibyte characters occupy several groups |
| Multibyte example | a is 61 and a CJK character is three groups (e4 bd a0) |
| Separator | a single space between byte pairs |
| Letter case | lowercase only — there is no uppercase mode |
Compiled from the implementation of this tool and checked against it by itoolnet.
What Text to Hex does not do
Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.
- The output is lowercase and unprefixed, so it is not immediately reusable as a code literal or as an uppercase constant. Neither the case nor a leading 0x can be requested here, and both have to be added downstream.
- Groups are byte-sized, so a multibyte character is spread across several of them and cannot be read or edited as a unit. Changing one CJK character means replacing its whole run of pairs by hand.
- Nothing wraps the line. A long input becomes one enormous single line of pairs, while hex dumps, diff tools and editors commonly expect breaks every 16 bytes — there is no width setting to produce that.
Tested and documented by itoolnet, the team that builds and maintains this site.