Unicode Converter
Convert text to Unicode escapes, code points and UTF-8 bytes, and back.
What Your Text Really Is, Byte By Byte
Type or paste any text and see it written eight ways at once: JavaScript and JSON escapes, ES6 code-point escapes, Python escapes, HTML entities, CSS escapes, percent-encoded UTF-8, U+ code points and raw UTF-8 bytes. Switch direction to decode any mix of those notations back into text.
Four counts explain the numbers that never agree: characters you see, code points, UTF-16 units (JavaScript’s .length) and UTF-8 bytes (what a database column limit usually measures). A character-by-character table shows each one’s code point, bytes and entity.
Key features
- Eight notations — \uXXXX, \u{…}, Python, HTML, CSS, %XX, U+ and hex bytes.
- Decode any mix of escapes back to text.
- Four length counts — graphemes, code points, UTF-16 and UTF-8.
- Character inspector with invisible characters made visible.
- Leave ASCII alone — escape only what needs it.
This tool runs entirely inside your browser using native Web APIs. Your files and text are never uploaded to a server, never logged and never shared with third parties.
How to use: Unicode Converter
- Enter text
Accents, emoji, CJK — anything. - Copy the notation you need
Each has its own copy button. - Switch to decode
Paste escaped text to read it. - Inspect characters
Find zero-width spaces and look-alike letters.
Technical specifications
| Processing location | Entirely in your browser — no server round trip |
|---|---|
| Data uploaded | None. Files and text never leave your device |
| Price | Free — no account, no trial, no usage cap |
| Category | Converters |
| Works offline | Yes, once the page has loaded |
| Browser support | Chrome 90+, Edge 90+, Firefox 90+, Safari 15+ |
| Interface languages | English, 中文, हिन्दी, Español, العربية |
Frequently asked questions
Why is an emoji’s length 2 in JavaScript?
JavaScript strings are UTF-16. Characters beyond U+FFFF, including most emoji, take two 16-bit units — a surrogate pair — so "😀".length is 2 although it is one code point and one visible character.
What is the difference between a code point and a byte?
A code point is the character’s number in Unicode, like U+00E9 for é. Bytes are how it is stored: UTF-8 uses one to four bytes per code point, so é takes two bytes (C3 A9).
How do I find hidden characters in text?
Paste it and read the character table. Zero-width spaces, byte-order marks and non-breaking spaces each show their code point even though they are invisible or look like ordinary spaces.
Which escape should I use in JSON?
JSON only supports \uXXXX, so characters above U+FFFF are written as two escapes (a surrogate pair). The JavaScript / JSON row produces exactly that.
Why do some characters look like one but count as two?
Some are built from several code points — a letter plus a combining accent, a flag from two regional indicators, or a family emoji joined with zero-width joiners. The “characters you see” count treats each as one.