UTF-8 Encoder & Decoder

See the actual UTF-8 bytes behind any text, or paste bytes to decode them back. Use the swap button to switch direction.

More ways to experience Recasely:

U8

See the Bytes Behind Your Text

UTF-8 is how nearly all text is stored and transmitted — over 98% of web pages use it. It is a variable-length encoding: a character takes between one and four bytes depending on which character it is. This tool shows you exactly which bytes your text becomes, and turns bytes back into text. Everything runs in your browser.

Why is my text more bytes than characters?

Because only the original ASCII characters fit in a single byte. The word café is four characters but five bytes, because é is encoded as C3 A9. That gap is the cause of a lot of real bugs: a database column declared as 20 bytes will not hold 20 accented characters, and an SMS or API limit counted in bytes runs out sooner than the character count suggests.

CharacterBytesUTF-8Range
A141ASCII, U+0000–U+007F
é2C3 A9Latin, Greek, Cyrillic, Hebrew, Arabic
3E4 B8 ADMost of the rest, including CJK
😀4F0 9F 98 80Emoji and other supplementary planes

This is also why an emoji sometimes counts as two characters in JavaScript: the language stores strings as UTF-16, where a four-byte UTF-8 character needs two 16-bit units. The byte count above is the UTF-8 one, which is what files and networks use.

What can I paste in to decode?

Hex bytes in whatever shape you have them — uppercase or lowercase, separated by spaces or newlines, or one continuous run. 48 65 6C 6C 6F, 48656c6c6f, and a column of bytes one per line all decode to Hello.

What does the � character mean?

That is U+FFFD, the replacement character, and it means the bytes you pasted are not valid UTF-8. It usually appears when a sequence is cut short — C3 starts a two-byte character but nothing follows it — or when the bytes are really in some other encoding such as Latin-1. It is a signal, not a failure: the decoder substitutes it and carries on rather than giving up on the rest of your input.

How is this different from the Hex to Text Converter?

The transformation is the same one; the framing and the output casing differ. This page prints uppercase bytes and is about encoding — how many bytes a character costs and why. The Hex to Text Converter prints lowercase and is about hex as a format, with a reference table of common byte values. Use whichever matches what you are pasting into next. For a compact, text-safe encoding of binary data instead, see Base64 Encode & Decode, and for escaping text for a URL, URL Encode & Decode.

Last reviewed: August 2026