Action
Hex case
Byte separator
Input
0 B · 0 chars
Output
0 B · 0 chars
Action
Hex case
Byte separator
Input
0 B · 0 chars
Output
0 B · 0 chars
Hex ↔ ASCII / UTF-8
Encode any UTF-8 string to hexadecimal byte pairs with your choice of case, separators, and line wrapping. Decode permissive hex (spaces, commas, 0x prefixes) back to text with strict UTF-8 validation. Large inputs run in a Web Worker; everything stays in your browser.
Hex ↔ ASCII / UTF-8 Use Cases
- Turn clipboard hex from logs or wire captures back into readable UTF-8 snippets
- Produce formatted hex dumps of strings for docs, tests, or embedded firmware constants
- Verify how emoji and non-Latin characters expand to UTF-8 byte sequences
- Quickly round-trip hex and text when debugging APIs, tokens, or encoded payloads
Hex ↔ ASCII / UTF-8 FAQ
Is my data sent to a server?
No. All conversion runs in your browser. Your text and hex never leave your device.
What encoding does the tool use?
Text is interpreted as UTF-8 for both directions. ASCII is a subset of UTF-8, so plain English works the same way.
Why does decoding fail with “invalid UTF-8”?
Decoded bytes must form valid UTF-8. Random binary hex or legacy encodings will not decode as text — use a hex dump viewer or the right codec instead.
Why use a Web Worker for large input?
Inputs over 500KB are processed off the main thread so typing, scrolling, and controls stay smooth.