⚡ Format Auto-Detection, Strict/Permissive Modes & Character Matrix

UTF-8 Decoder Online

Decode UTF-8 byte streams (Hex, Binary, Decimal, Percent-Encoded, C/JS Escapes) back to text with format auto-detection, strict vs permissive modes, BOM auto-stripping, character matrix, and 100% browser privacy.

How to Use the UTF-8 Decoder

1

Paste Byte Stream

Paste Hex bytes (48 65), Binary (01001000), Decimal, C escapes (\x48), or Percent-encoded strings.

2

Auto-Format Detection

The decoder automatically identifies input byte formats and strips leading BOM (0xEF 0xBB 0xBF).

3

Inspect Character Matrix

Explore the character matrix showing code points (U+XXXX), UTF-8 bytes, and surrogate pairs.

4

Copy Decoded Text

Copy decoded text or batch results with 1-click or download as a text file.

UTF-8 Decoding Standards (RFC 3629 & WHATWG), BOM Stripping, & Error Diagnostics

UTF-8 decoding transforms binary byte streams into Unicode scalar values according to RFC 3629 and the WHATWG Encoding Standard. Proper decoders handle multi-byte sequences, detect leading Byte Order Marks (BOM), and manage malformed byte sequences gracefully.

WHATWG Malformed Sequence Replacement (U+FFFD)

When permissive decoding is enabled (fatal: false), invalid or truncated byte sequences are replaced with the Unicode replacement character (U+FFFD). Under strict RFC 3629 mode (fatal: true), decoding halts immediately and returns structural diagnostics.

100% Local Browser Privacy & Security

Our UTF-8 Decoder runs 100% locally in your web browser using native Web API TextDecoder. Zero data leaves your machine.

Frequently Asked Questions

What byte formats are automatically detected by this UTF-8 Decoder?

The decoder automatically detects and parses Hexadecimal bytes (48 65 6C / 0x48), Binary 8-Bit streams (01001000 01100101), Decimal byte arrays (72 101 108), C/Python escaped strings (\x48\x65), JS/JSON escapes (\u0048�), and URL percent-encoding (%F0%9F%9A%80).

What is the difference between Strict Mode and Permissive Mode?

In Permissive Mode (default), malformed or truncated byte sequences are replaced with the Unicode replacement character (U+FFFD). In Strict Mode, strict RFC 3629 validation is enforced and exact error diagnostics are returned.

How does automatic Byte Order Mark (BOM) stripping work?

If your input byte stream begins with the UTF-8 BOM preamble (0xEF, 0xBB, 0xBF), the decoder automatically detects it, strips the extra 3 bytes, and displays a "BOM Stripped" badge.

How does the Character & Surrogate Matrix work?

The character matrix decomposes decoded output text line-by-line, showing visual characters, Unicode code points (U+XXXX), UTF-8 hex bytes, 8-bit binary bits, byte counts, Unicode blocks, and UTF-16 surrogate pairs.

What is Multi-line Batch Mode?

Multi-line Batch Mode allows you to paste multi-line byte dumps, packet logs, or lists of hex sequences, decoding them line-by-line simultaneously.

Why do some invalid byte sequences produce the replacement character ?

Under the WHATWG Encoding Standard, when TextDecoder encounters byte sequences that violate UTF-8 structural rules, it replaces each malformed subpart with U+FFFD () to prevent silent data corruption.

Does UTF-8 use surrogate pairs?

No. Surrogate pairs (U+D800..U+DFFF) are exclusive to UTF-16. UTF-8 encodes Unicode scalar values directly using 1 to 4 bytes under RFC 3629.

Can I decode mixed percent-encoded and hex strings?

Yes. The engine heuristics parse percent-encoded URLs, C escape sequences, and spaced hex bytes seamlessly.

Is my byte payload sent to any server?

No. 100% of decoding, format detection, BOM stripping, and character matrix analysis runs locally in your browser via Web API TextDecoder. Zero data is uploaded.

How do I encode text into UTF-8 byte streams?

Click the "Switch to Encode" button or navigate to /encode-decode/utf8-encode to convert text and emojis into Hex, Binary, Decimal, Percent, or language escape codes.

Related Encoding & Decoding Tools