Base64 Encoder and Decoder
Encode and decode UTF-8 text as standard or URL-safe Base64.
Validate hexadecimal byte sequences as strict UTF-8. Detect invalid continuation bytes, truncated sequences, overlong encodings, surrogate values and out-of-range code points.
Paste hexadecimal bytes such as 48 65 6C 6C 6F. Input is validated as bytes, not normalized text.
This UTF-8 validator accepts hexadecimal byte sequences, parses the bytes first, and then enforces strict modern UTF-8 rules. It detects malformed continuation bytes, truncated sequences, overlong encodings, encoded surrogate values and code points above U+10FFFF. For valid input, it shows byte counts, code-point counts, a decoded preview, normalized hexadecimal and UTF-8 BOM status.
This is a server-side validator. The submitted byte sequence is sent to UnicodeNow for analysis; it is not a browser-local tool.
Input:
48 65 6C 6C 6F 2C 20 63 61 66 C3 A9 20 F0 9F 98 80
Expected result:
Status: Valid UTF-8
Decoded text: Hello, café 😀
Bytes: 17
Code points: 13
BOM: None
ASCII bytes 00-7F stand alone. Multi-byte sequences begin with a valid leading byte and must contain the exact number of continuation bytes in the range 80-BF. Modern UTF-8 uses one to four bytes, requires the shortest valid form, excludes UTF-16 surrogate code points, and does not allow values above U+10FFFF.
| Example | Error |
|---|---|
80 | Unexpected continuation byte at byte 1. |
C3 28 | Invalid continuation byte at byte 2. |
F0 9F 98 | The four-byte sequence starting at byte 1 is truncated. |
C0 AF | Overlong UTF-8 encoding. |
ED A0 80 | UTF-8 cannot encode surrogate code points. |
F4 90 80 80 | The sequence represents a value above U+10FFFF. |
F4 8F BF BF | Valid UTF-8 for maximum Unicode scalar value U+10FFFF. |
The parser accepts separated byte groups, continuous hexadecimal, 0x-prefixed values, comma-separated values and whitespace across lines. Every parsed value must represent one byte from 00 to FF.
48 65 6C 6C 6F
48656C6C6F
0x48 0x65 0x6C 0x6C 0x6F
48,65,6C,6C,6F
The UTF-8 BOM is EF BB BF. It is valid but optional. This validator treats it as a BOM only at the start, preserves the original byte count, reports UTF-8 BOM detected, and excludes the leading BOM character from the decoded preview.
UTF-8 validation checks byte structure. Valid UTF-8 can still contain null bytes, control characters, bidirectional formatting controls, zero-width characters, noncharacters or private-use characters. Those are content warnings, not structural UTF-8 errors. Valid UTF-8 is not automatically safe for HTML, SQL, logs, terminals, source code or other contexts.
The submitted byte sequence is sent to UnicodeNow for UTF-8 validation. Input is processed securely and is not intentionally retained after the request completes.
Do not submit passwords, private keys, access tokens, personal records or other sensitive data.
Valid UTF-8 is a byte sequence that follows the modern one-to-four-byte encoding rules, uses valid continuation bytes, avoids overlong forms, excludes surrogate code points and stays within U+10FFFF.
Paste hexadecimal bytes into the validator and run the check. The server parses the hex first, then validates the resulting byte sequence as strict UTF-8.
A continuation byte must be in the range 80-BF. If a multi-byte sequence contains a different byte where a continuation byte is required, the sequence is invalid.
A sequence is truncated when a leading byte announces a multi-byte character but the input ends before all required continuation bytes appear.
An overlong sequence uses more bytes than necessary for a code point. Modern UTF-8 rejects non-shortest encodings such as C0 AF.
No. UTF-16 surrogate code points from U+D800 through U+DFFF are not Unicode scalar values and cannot be encoded in valid UTF-8.
A UTF-8 BOM is the leading byte sequence EF BB BF. It is valid but optional, and this validator reports it only when it appears at the start.
Yes. UTF-8 validation checks byte structure. Valid text can still contain null bytes, controls, bidi controls or invisible characters, which are reported separately as warnings.
Yes. When input is valid UTF-8, the result includes a decoded text preview. The preview is rendered as text, not HTML.
The submitted byte sequence is sent to UnicodeNow for validation and is not intentionally retained after the request completes. Do not submit secrets or sensitive data.
To decode valid hexadecimal bytes, use Hex to Text. To compare possible legacy encodings, use the Character Encoding Detector.
Encode and decode UTF-8 text as standard or URL-safe Base64.
Decode binary byte groups into UTF-8 text.
Count UTF-8 bytes, code points, grapheme clusters and UTF-16 code units for text.
Compare likely text encodings from raw bytes or byte-like input.
Convert decimal bytes or Unicode code point values to text.
Decode hexadecimal byte values into UTF-8 text.
Convert text to UTF-8 bytes and validate byte sequences.
Convert UTF-8 text bytes into hexadecimal values.
Learn why valid UTF-8 can appear broken when decoded incorrectly in What Is Mojibake?. For a repair workflow, read How to Fix Broken UTF-8 Text.
Unicode defines characters and code points. UTF-8 encodes those code points as bytes for files, databases, web pages, APIs and network messages.
Compare UTF-8 and UTF-16 with byte examples, surrogate pairs, byte order, BOM behavior and practical guidance for developers.
Learn why text becomes garbled, how UTF-8 bytes turn into mojibake such as café and It’s, and how to repair it safely.
A safe workflow for diagnosing broken UTF-8, validating bytes, reversing mojibake, handling double encoding and auditing repairs.