Encoding & Unicode
What the bytes and code points of your text actually are.
Written for: Developers and designers · People moving text between systems
What this family is for
Two strings can look identical on screen and be completely different data. A non-breaking space, a zero-width joiner or a precomposed accent where the other side expects a base letter plus a combining mark will break a match, a lookup or a database import. These tools show exactly what your text is, down to the code point and the UTF-8 byte, and convert between the byte-level encodings programs exchange.
Base64, URL encoding, HTML entities and hashing
Four different escape mechanisms, four different targets. Base64 makes arbitrary bytes representable in a text channel. Percent-encoding escapes the characters that would break a URL. HTML entities escape the characters that would break markup. A hash is not an escape at all — it is one-way and proves integrity rather than transmitting a value.
The usual production bug is applying the right escape for the first hop and forgetting the second: a Base64 value placed in a URL needs URL-safe Base64, and a URL placed in an HTML attribute needs HTML entities. Each boundary needs its own escape.
| If you have… | Use | Because |
|---|---|---|
| Binary data in a text field | Base64 encoder | Makes bytes printable ASCII |
| A value inside a URL component | URL encoder | Escapes structural characters |
| A value inside HTML text or an attribute | HTML entities | Prevents markup injection |
| To prove a file has not changed | File hash | A digest, not an encoding |
| To inspect what a character actually is | Unicode inspector | Shows code points and bytes |
7 tools in Encoding & Unicode
Common mistakes with these tools
- Using Base64 as encryption — There is no key and anyone can decode it. It hides nothing.
- Encoding a whole URL instead of its parts — That escapes the ? and & that give the URL structure, producing one long path.
- Forgetting URL-safe Base64 in a URL — + and / are Base64 letters that a URL parser treats as structure or space.
- Confusing a hash with an encoding — A hash cannot be reversed. If you need the value back, you want encryption or an encoding.
Frequently asked questions
What is the difference between a character and a byte?
A character is a code point; a byte is how that code point is stored. In UTF-8 an accented letter, a CJK character or an emoji takes several bytes, so the byte count is often larger than the character count.
Why can two identical-looking strings fail to match?
Because they can differ in code points — a precomposed é versus e + combining acute, or a normal space versus U+00A0 — while rendering the same. The inspector shows the difference.
Is anything uploaded when I inspect text?
No. The inspection and the conversions run in your browser; the text never leaves your device.
Other tool families
- Scripts & numerals — Digits, writing systems and transliteration, converted losslessly. (7 tools)
- Accents & diacritics — Strip the marks that break search, matching and filenames. (1 tools)
- Phonetic & symbol writing — Spell text in other symbolic systems: Morse, Braille, radio alphabet. (3 tools)
- Text utilities — Everyday clean-up: counting, case, whitespace, slugs and lines. (15 tools)
- Developer & data — Encode, format and generate the values developers pass between systems. (24 tools)
- Time & date — Timestamps and dates, converted without a timezone surprise. (4 tools)
- Converters & calculators — Unit, money and grade calculators that show the method, not just the answer. (14 tools)
- Colour — Move a colour between HEX, RGB and HSL without a design tool. (3 tools)
- Images — Resize, convert, compress, crop and inspect images without uploading them. (15 tools)
- Documents — Business paperwork — invoices, receipts — generated in the browser. (2 tools)
- CSS & design — Generate gradients, shadows, radii and shapes as copy-ready CSS. (4 tools)
- QR & codes — Machine-readable codes: QR, barcodes, and the subtitle formats players read. (3 tools)