UTF-8 Encoder & Decoder
Encode text to UTF-8 bytes as hex, decimal, binary, Base64 or percent-encoding, and decode them back.
- Characters
- 0
- Code points
- 0
- UTF-8 bytes
- 0
Byte breakdown
| Character | Code point | UTF-8 bytes (hex) | Length |
|---|
How it works
UTF-8 is the encoding that turns characters into bytes: ASCII letters take one byte,
accented Latin characters two, most CJK characters three and emoji four. Type in the
encode box and this tool runs your text through the browser's TextEncoder,
then shows the resulting UTF-8 bytes as hex, decimal, binary, percent-encoding (the
%C3%A9 style used in URLs), \x escapes or Base64.
Switch to decode and paste bytes in any of those formats — auto-detect usually works out
which one you have — and they are turned back into text with a strict
TextDecoder, so a broken or truncated byte sequence is reported as an error
instead of silently becoming a “�” replacement character. The byte breakdown table shows
exactly which bytes each character produced. Everything runs in your browser: nothing you
paste is uploaded, logged or sent anywhere.
Frequently asked questions
What is UTF-8 encoding?
UTF-8 is the rule for turning characters into bytes. Every Unicode code point maps to 1–4 bytes: plain ASCII characters (A–Z, digits, punctuation) take one byte, accented Latin and Greek characters two, most Chinese, Japanese and Korean characters three, and emoji four. Because the one-byte range is identical to ASCII, UTF-8 text stays readable for plain English and is now the default encoding of the web.
How do I convert UTF-8 hex bytes back to text?
Switch this tool to "Decode", paste the bytes (for example 48 c3 a9 6c 6c 6f) and the decoded text appears instantly. Auto-detect recognises hex, decimal, binary, percent-encoded (%C3%A9) and Base64 input, or you can pick the format yourself. Decoding is strict, so if the bytes are not a valid UTF-8 sequence you get a clear error message instead of a silent "�" replacement character.
Why does one character take more than one byte in UTF-8?
UTF-8 only has 128 single-byte slots, reserved for ASCII. Anything beyond that is encoded as a multi-byte sequence: é is C3 A9 (2 bytes), € is E2 82 AC (3 bytes) and 😀 is F0 9F 98 80 (4 bytes). That is why a string's character count and its byte length differ. The byte breakdown table on this page shows the exact bytes each character produces.