About the UTF-8 Decode
When you have the raw bytes of a UTF-8 string, as \xNN escapes, %NN percent codes, or plain hex, this tool assembles them and decodes the result as text. It is the counterpart to UTF-8 Encode and a quick way to confirm what a byte sequence from a log, a hex dump or a network capture actually says.
The bytes must form valid UTF-8; an incomplete multi-byte sequence produces a replacement character, which itself is a useful signal that the capture was truncated. An odd number of hex digits is reported as an error. A different failure looks similar but is not: when you see é where an é belongs, the bytes are perfectly valid and the damage happened earlier, at the point something read UTF-8 as Latin-1.
Telling those two apart, broken bytes against text that was already decoded twice, is most of what this tool earns its keep doing while chasing an encoding bug through a log file or a database export. Decoding the second case again here will not repair it, because the wrong characters are already in the string. For percent-encoded URLs the URL Decode tool is more convenient, Hex Decode handles bare hex without escape prefixes, and UTF-8 Encode shows the bytes behind text you already have.
How to use
- Paste the byte escapes, in \x, % or plain hex form.
- Read the decoded text.
- A replacement character means the bytes were not complete UTF-8.
Common questions
- What escape formats are accepted?
- \xNN, %NN and plain hex digits. Separators are ignored.
- Why do I see a diamond question mark?
- The bytes are not valid UTF-8, often because a multi-byte character was cut off.
- Is this the same as Hex Decode?
- Very close; both interpret bytes as UTF-8. This one also accepts \x and % escapes.