Convert Hexadecimal to UTF-8
Decode hex to UTF-8 text with byte-structural breakdown. Handles ASCII, Latin, CJK, emoji. Batch mode. Free, offline, client-side, instant.
- Runs in your browser
- Nothing uploaded
- Free, no sign-up
Paste hex bytes - get UTF-8 text plus a per-code-point breakdown showing 1/2/3/4-byte structure, code points, and rendered characters. Handles emoji and every Unicode script.
How to Use Convert Hexadecimal to UTF-8
- Paste your hex - continuous (
48656C6C6F), space-separated (48 65 6C 6C 6F), comma-separated with0xprefixes, or one sequence per line. The parser strips whitespace, commas, underscores, and0x/x/#prefixes automatically. - Pick your options - "Strip BOM" removes a leading
EF BB BFmarker before decoding; "Fatal" throws an error on invalid UTF-8 instead of emitting the replacement character�. - See the result - the output pane shows the decoded text, and the breakdown lists each Unicode code point with its bytes, its UTF-8 bit pattern, and the rendered character.
- Read the stats - total bytes, code points, ASCII vs non-ASCII split, and any error count. Decoded lines count ok; skipped lines count as errors without aborting the batch.
- Copy or download - the Copy button uses the async Clipboard API with an execCommand fallback; Download saves the output as
hex-to-utf8.txtin UTF-8 encoding. - Trust the math - decoding uses the browser's native
TextDecoder('utf-8'), the same decoder that parses every web page. No homemade byte juggling, no off-by-one bugs.
Frequently Asked Questions
How does this differ from hex-to-ASCII or hex-to-text tools?
ASCII tools read every byte as a single character (0-127 only; 128-255 give garbage or Latin-1). This tool uses real UTF-8 multi-byte parsing: C3 A9 becomes é (one code point, two bytes), not é (two characters). That matters the moment non-English text is involved.
Can I decode emoji?
Yes. Emoji use 4-byte UTF-8 sequences in the supplementary plane. F0 9F 98 80 decodes to 😀 (U+1F600). The breakdown panel shows the 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx pattern so you can see how the 21-bit code point is packed across 4 bytes.
What does the breakdown panel show?
For each code point: the rendered character, a 1B/2B/3B/4B tag for byte count, the Unicode code point (U+XXXX), the raw hex bytes, and the UTF-8 bit pattern (e.g., 1110xxxx 10xxxxxx 10xxxxxx for 3-byte). First 60 code points are shown to keep the page responsive.
What happens with invalid UTF-8?
With “Fatal” off (default): invalid bytes become uFFFD (the Unicode replacement character �). With “Fatal” on: the decode throws, and the line is flagged with “invalid UTF-8 at byte N” – useful when validating externally-sourced hex.
Does it accept the 0x prefix and commas?
Yes. The normalizer strips 0x, 0X, x, #, commas, underscores, and all whitespace. 0x48, 0x65, 0x6C and x48x65x6C and 48_65_6C all decode identically to Hel.
What is the BOM and should I strip it?
The Byte Order Mark (EF BB BF) is a 3-byte prefix some editors add to UTF-8 files. It’s invisible when rendered but bytes 1-3 of your hex will look “off”. Strip-BOM on (default) silently removes it; off leaves it as uFEFF at the start of output.
Is my hex data sent anywhere?
No. Everything runs in your browser – the TextDecoder is built into JavaScript. No fetch, no XHR, no analytics on the hex. Open DevTools → Network, decode anything, watch zero requests fire. Safe for credentials, PII, or proprietary byte streams.
Does it work offline?
Yes. Once the page (HTML/CSS/JS, under 20 KB total) loads, pull your Ethernet cable or hit airplane mode – every subsequent decode runs locally. Perfect for air-gapped systems or when debugging on a train.
How large an input can it handle?
Typical inputs decode in under 50 ms. A 10,000-byte hex string decodes in about 5 ms on a modern laptop. The breakdown panel caps at 60 rows to keep DOM work fast on very large batches; the output textarea and stats still reflect the full decoded text.
Can I get the reverse direction (UTF-8 text → hex)?
Use the companion UTF-8-to-Hex encoder in the same category. That tool accepts any Unicode text – emoji, CJK, Arabic – and outputs the corresponding hex byte sequence, with the same 4-format options (continuous, spaced, 0x-prefixed, x-prefixed) available here.
Related Tools
Convert UTF-8 to Hexadecimal →
Convert UTF-8 text to hexadecimal (5 formats, case, grouping). Bidirectional. Emoji-safe. Free, client-side, instant,…
Binary to UTF-8 Decoder →
Binary to UTF-8 Text Decoder handles emoji, CJK, accents, strips BOM, counts replacement chars.…
Convert Arbitrary Base to UTF-8 →
Decode numeric tokens in any base (2-36) as UTF-8 bytes - multi-byte emoji and…
Base64 to UTF-8 Decoder →
Decode Base64 to UTF-8 text - handles emoji, CJK, BOM-stripping, URL-safe variants. Free, client-side,…
Convert Bytes to UTF-8 →
Convert Bytes to UTF-8 Decode decimal/hex/binary byte values to UTF-8 text - emoji, CJK,…
Code Points to UTF-8 Converter Free →
Free online Unicode code points to UTF-8 converter. Shows actual UTF-8 byte sequences per…
Convert Data URI to UTF-8 →
online Data URI to UTF-8 decoder with byte-breakdown panel for emoji and CJK. Client-side,…
Convert Decimal to UTF-8 →
online decimal to UTF-8 text decoder. Byte-mode (raw UTF-8 bytes) and codepoint-mode. Client-side, instant,…
Convert HTML Entities to UTF-8 →
Decode HTML entities to UTF-8 with per-character byte breakdown. Named, decimal, hex. Free, offline,…
Convert Octal to UTF-8 →
Decode octal byte sequences to UTF-8 text, encode UTF-8 to octal. C-escape support, multi-byte.…
Convert UTF-16 to UTF-8 →
Convert UTF-16 code units to UTF-8 text and bytes. 3 formats, BE/LE, BOM, surrogate…
Convert UTF-32 to UTF-8 →
Convert UTF-32 code points to UTF-8 text and bytes. 3 formats, BE/LE, BOM, strict…