Skip to content
Webmaster Tools
Text & encodingUnicode Inspector

Unicode Character Inspector

Hidden characters and look-alikes.

Try:
Runs in your browser

About the Unicode Character Inspector

This inspector breaks text into characters and shows each code point: its U+ number, name, general category, script, UTF-8 bytes and UTF-16 code units. Emoji sequences and accented letters are grouped the way you see them on screen (grapheme clusters), so 👨‍👩‍👧 shows as one character made of five code points.

It highlights the characters that cause bugs and security problems: zero-width spaces and joiners, the byte order mark, no-break and other unusual spaces, soft hyphens, bidirectional controls used in "Trojan Source" attacks, invisible tag characters and stray variation selectors. It also flags look-alike letters, such as Cyrillic "а" in a Latin word or fullwidth "A", and words that mix scripts.

How to use it

  1. Paste the text: a password that won't work, a string that won't match, a suspicious link.
  2. Read the warnings, then find each flagged character in the table and in the highlighted view.
  3. Copy the clean version, or one of the normalization forms (NFC, NFD, NFKC, NFKD).

Examples

Common questions

Why is my string longer than it looks?

JavaScript's length counts UTF-16 code units: an emoji outside the Basic Multilingual Plane takes two, and a family emoji takes eight. The stats show graphemes, code points, UTF-16 units and UTF-8 bytes side by side.

What is Trojan Source?

Bidirectional control characters such as U+202E reorder how text is displayed. In source code they can make a comment look like code, or code look like a comment, so a reviewer sees something different from what the compiler runs (CVE-2021-42574).

Which normalization form should I use?

Store and compare text in NFC. Use NFKC when you want look-alike compatibility characters folded, for example to match usernames.