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.
100% client-side — no data leaves your machine

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

  1. Enter text
    Accents, emoji, CJK — anything.
  2. Copy the notation you need
    Each has its own copy button.
  3. Switch to decode
    Paste escaped text to read it.
  4. Inspect characters
    Find zero-width spaces and look-alike letters.

Technical specifications

Processing locationEntirely in your browser — no server round trip
Data uploadedNone. Files and text never leave your device
PriceFree — no account, no trial, no usage cap
CategoryConverters
Works offlineYes, once the page has loaded
Browser supportChrome 90+, Edge 90+, Firefox 90+, Safari 15+
Interface languagesEnglish, 中文, हिन्दी, 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.

Related tools

Back to all tools