Hex To ASCII Converter

Free · no sign-up · nothing leaves your browser

Hex ⇄ ASCII Converter

Paste a hex dump or plain text — the direction is detected automatically. Convert between hex and ASCII / UTF-8 / Latin-1 instantly, with odd lengths, stray characters and invalid UTF-8 sequences highlighted in place.

Convert hex and text

100% local · no upload
Used to decode bytes and to encode text.
Applies to the hex output (and is tolerant when parsing input).
AUTO DETECTING Text stays on this device — nothing is uploaded.
Hex bytes

How it works

Three steps, all of them in your browser.

1 · Paste

Drop a hex dump (48 65 6C) or plain text into the box. Separators, 0x and \x prefixes are all accepted.

2 · Auto-detect

If the cleaned input is hex digits it is decoded; otherwise it is encoded to bytes. The ⇄ bar shows which way it went.

3 · Read & copy

Both directions are shown at once — decoded text and formatted hex bytes — with byte and character counts.

Built for protocol and log work

Invalid bytes highlighted

Odd digit counts, non-hex characters and broken UTF-8 sequences are listed with their byte offset and shown in red inside the hex output.

Three encodings

Decode as UTF-8, ASCII or Latin-1 (ISO-8859-1). Latin-1 is decoded byte-for-byte so 0x80–0xFF round-trip exactly.

Five hex formats

Space, compact, comma, 0x and \x output — lowercase, normalized, ready to paste into source.

Byte-stream decoration

The eight squares above the input light up as bytes are read, so you can see the stream advancing while you type.

Nothing is uploaded

Zero network requests, no accounts, no storage. The data never leaves the tab — safe for proprietary payloads.

Paste-sized and fast

Inputs up to 200,000 characters are handled instantly, with a clear notice if a paste is truncated.

FAQ

How does it decide the direction?

After removing separators and 0x/\x prefixes, if every remaining character is a hex digit the input is treated as hex and decoded to text. Otherwise it is treated as text and encoded to bytes. Hex-looking text such as Cafe is ambiguous — the direction bar always tells you which way it resolved.

Why is a byte shown in red?

A red byte is part of an invalid sequence: it failed UTF-8 decoding, is above 0x7F when ASCII was selected, or is a stray character in a hex dump. The issue panel lists each one with its decimal and hex offset.

What is the difference between UTF-8 and Latin-1?

UTF-8 uses one to four bytes per character; Latin-1 maps each byte 0x00–0xFF to a single character. A byte above 0x7F is therefore valid Latin-1 but usually invalid on its own in UTF-8 — which is exactly why mojibake happens.

Is my data sent anywhere?

No. The whole converter is plain JavaScript on this page; there is no server endpoint involved and no analytics on the input.

Latest updates

More free tools

Step-by-step guides in our blog & guides.

Free Unit Converter Free Online Lease Agreement Template Feuille De Calcul Gratuite PDF to Word Converter محول Mp4 الى Mp3 Reverse Gst Calculator Australia Multi-Currency Converter Free Online Square Foot Calculator Tarot Card Reading Green Screen Remover