Hex ↔ ASCII / UTF-8
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.