100% local processing — your files and data never leave this browser. No uploads, no server storage.

OnboxTools

Free · Browser-only · No upload

UTF-8 decode bytes to text

Convert hex or decimal UTF-8 bytes to strings online

Utf8 decode online — paste spaced or compact hex, or comma-separated decimal bytes, and recover the original Unicode text instantly. Built for inspecting packet dumps, API payloads, firmware logs, and charset debugging.

Decoding uses native TextDecoder in your browser — no upload, no account. Use our UTF-8 Encoder to convert text back to hex or decimal bytes.

Need the reverse conversion?

UTF-8 Encoder
UTF-8 bytes9
Input formatHex
Hex bytes input
Decoded text

More Text Utilities

🔓
Base64 Decoder
🧬
Base64 Encoder
🔡
Case Converter
Cron Generator
🎨
CSS Minifier
📐
CSS Unminifier
📆
Date Format Converter
📅
Date to Unix
🔎
Find and Replace
🛡️
HTML Escape
📰
HTML Minifier
↩️
HTML to Markdown
🔓
HTML Unescape
📄
HTML Unminifier
📋
Markdown Preview
🔄
Markdown to HTML
🎲
Random Number
🔤
Random String
🔍
Regex Tester
🧹
Remove All Whitespace
↩️
Reverse Text
✂️
Split String
⚖️
Text Compare
🔁
Text Repeater
📖
Text Viewer
🌍
Time Zone Converter
🕐
Unix Time to Date
🔗
URL Encoder
🔤
UTF-8 Decoder
🌐
UTF-8 Encoder
📊
Word Counter

Browse by category

UTF-8 decoding (how bytes become text)

Bytes 0xxxxxxx are single-byte ASCII. Bytes 110xxxxx start two-byte sequences; 1110xxxx start three-byte; 11110xxx start four-byte. Continuation bytes always begin with 10xxxxxx.

Fatal decoding rejects overlong encodings, surrogate code points, and truncated sequences — the same strictness many production parsers use.

Decoding example: Hello 🌍

Hex 48 65 6c 6c 6f 20 f0 9f 8c 8d decodes to Hello 🌍 — five ASCII letters, one space, one emoji. Nine bytes, seven characters.

Decimal 72, 101, 108, 108, 111, 32, 240, 159, 140, 141 produces the same string. Paste either format from our UTF-8 Encoder output.

UTF-8 decoder input formats

FromToResult
Spaced hexInput48 65 6c 6c 6f
Compact hexInput48656c6c6f
Decimal bytesInput72, 101, 108, 108, 111
InvalidOdd hex48656c6c6

Complete guide to UTF-8 decoding bytes online

What UTF-8 decoding does

UTF-8 decoding reverses encoding: a stream of bytes becomes human-readable Unicode text. Each valid leading byte tells the decoder how many continuation bytes follow. Invalid bit patterns or truncated sequences produce errors instead of silent corruption.

When you utf8 decode online, you are translating wire-format bytes into the characters your editor would show — not performing URL decoding, HTML unescaping, or Base64 reversal. Those are separate layers applied before or after UTF-8.

This utf8 decoder uses TextDecoder with fatal mode enabled, so malformed sequences surface as clear errors rather than replacement characters you might miss in a log.

Developers paste hex from Wireshark, xxd, browser devtools, or ticket attachments to confirm what bytes actually say before blaming application logic.

How to decode UTF-8 hex to text online

Paste byte values into the input panel. Spaced hex (48 65 6c 6c 6f), compact hex (48656c6c6f), and optional 0x prefixes all work — the parser strips cosmetic formatting before decoding.

Switch to decimal mode when your source lists numeric bytes like 72, 101, 108, 108, 111. That matches decimal output from our UTF-8 Encoder and spreadsheet exports from hardware teams.

Invalid hex (odd length, non-hex characters) or out-of-range decimal values (above 255) error immediately. Fix the source string and retry rather than guessing missing bytes.

Copy decoded text with one click for pasting into bug reports, test assertions, or diff tools. Compare against the string your API documentation promises.

Hex input formats and common pitfalls

Packet analyzers and hexdump utilities often print spaced hex with offsets — copy only the byte columns, not address prefixes. This tool ignores 0x prefixes and comma separators automatically.

Odd-length hex means an incomplete final nibble — pad with a leading zero or fix the capture. A single stray character from a copy-paste error can invalidate the entire sequence.

Do not paste URL percent-encoding here (%48%65%6c%6c%6f) — that is a different alphabet. URL-decode first, or use our URL Encoder/decoder for percent-encoded strings.

Base64-wrapped UTF-8 must be Base64-decoded before you decode UTF-8 bytes. Chain tools: Base64 decode, then UTF-8 decode, not the reverse.

When you need a UTF-8 hex decoder

Mojibake debugging: characters look wrong in the UI but hex from the server looks plausible. Decode here to see the actual string independent of fonts and CSS.

API response inspection: copy raw body bytes from a failing integration, decode, and compare to the JSON string field your client parses. Mismatches reveal double-encoding or wrong charset labels.

Firmware and embedded logs: serial consoles often print hex byte dumps. Decode to readable messages without installing desktop hex tools on every machine.

Forensics and support tickets: attach decoded plaintext to tickets alongside hex so non-binary specialists understand the payload.

UTF-8 vs legacy encodings

This tool targets UTF-8 only. Windows-1252, ISO-8859-1, and Shift_JIS produce different byte patterns for the same visual glyph. If decode errors or garbage appear, ask whether the source was ever UTF-8.

UTF-8 BOM (EF BB BF) at the start decodes as the Unicode character U+FEFF (zero-width no-break space). Strip those three bytes from input if your consumer expects BOM-free text.

Latin-1 misinterpreted as UTF-8 often shows as C3 xx sequences for accented letters that should be single bytes in Latin-1. Compare against a known-good UTF-8 encode of the expected string.

JSON and XML declare charset=utf-8 in headers — if decoded text is wrong but hex matches a Latin-1 file, the file was mislabeled, not mis-decoded here.

Privacy and related tools

TextDecoder runs entirely in your browser. Customer data, auth tokens, and internal error hex dumps never upload. Clear the textarea on shared workstations when finished.

Pair with our UTF-8 Encoder for round-trip testing: encode a canonical string, decode the hex, and assert equality in your head or in CI.

Base64 Encoder/Decoder handles transport wrapping. URL Encoder handles percent-encoding. HTML Escape handles & and ' — use the right layer for each bug.

Document whether your hex source used spaced, compact, or decimal format in support tickets so the next engineer reproduces the same decode without re-guessing.

Detailed guide

Decoding API response bytes

Copy hex from a network tab, curl | xxd, or server log. Paste here and confirm the decoded string matches the JSON text field your client displays.

If decode fails, check whether the body was gzip-compressed (bytes won't be valid UTF-8 text) or whether the response used a charset label that does not match the actual bytes.

Round-trip testing with the UTF-8 Encoder

Encode a canonical test string in the UTF-8 Encoder, copy the hex, paste it here, and verify the decoded output matches exactly — including spaces, newlines, and emoji.

Automate the same flow in CI by storing hex fixtures from the encoder and asserting decode equality in your test suite.

Common questions

UTF-8 Decoder FAQ

How do I utf8 decode online?

Paste hex bytes (space-separated or continuous) or decimal byte values, and read the decoded text output. Invalid UTF-8 sequences show an error.

How do I convert hex to utf8 text?

Paste spaced or compact hex into the input panel. Each pair of hex digits becomes one byte; valid UTF-8 sequences render as Unicode text.

Can I decode utf8 bytes to string from decimal?

Yes. Switch to decimal mode and enter comma- or space-separated values from 0 to 255. This matches decimal output from our UTF-8 Encoder.

Is utf8 decoding the same as URL decoding?

No. This decodes raw UTF-8 bytes. Percent-encoding (%C3%A9) is for URLs — use our URL Encoder for that layer.

Can I decode non-UTF-8 encodings?

This tool targets UTF-8 only. Legacy encodings like Windows-1252 need specialized converters.

What about UTF-8 BOM?

BOM bytes EF BB BF decode as a visible zero-width character. Strip them from input if your consumer expects BOM-free text.

Why does byte count differ from character count?

UTF-8 uses variable-length encoding. One emoji can be four bytes but one character in the decoded output.

Does the UTF-8 Decoder send my input to a server?

Yes. Everything runs in your browser. Your input is not uploaded, logged, or stored on our servers.

Do I need an account?

No account or sign-up is required. Open the page and start using the tool immediately.