What UTF-8 encoding does
UTF-8 maps every Unicode character to a sequence of one to four bytes. Unlike fixed-width encodings, ASCII letters still use a single byte while emoji and accented letters expand to two, three, or four bytes. That variable length is why a string's character count rarely equals its byte count.
When you utf8 encode text online, you are not encrypting or compressing — you are revealing the raw bytes that HTTP, JSON, databases, and filesystems actually store. Developers paste strings here to compare against hexdump output from Wireshark, firmware logs, or a misbehaving API.
This utf8 encoder uses the browser's TextEncoder API, which always outputs standard UTF-8. That matches what Node.js Buffer.from(str, 'utf8'), Python str.encode('utf-8'), and Rust str.as_bytes() produce for the same input.
Treat the hex stream as the source of truth during debugging. If two systems disagree on a string but the UTF-8 bytes match, the bug is in display or decoding — not in the original text.