A token mixes Latin, Greek or Cyrillic. Review visually similar letters; this heuristic cannot certify safety.
| UTF-16 offset (0-based) | graphemes | Character | Unicode code points | Unicode name | Category | Script | UTF-8 bytes | UTF-16 units | Flags |
|---|
Text & encoding
How it works
A visible character can contain several code points. The emoji 👩💻 contains WOMAN, ZERO WIDTH JOINER and PERSONAL COMPUTER, but normally displays as one grapheme. JavaScript string length counts UTF-16 units instead of graphemes.
Spaces can also differ: U+0020 is an ordinary space and U+00A0 is a non-breaking space. Zero-width and bidirectional controls may affect layout while remaining difficult to see. The inspector labels them explicitly.
What you can do
Keep every character occurrence and its zero-based UTF-16 offset. Compare official Unicode names, code points, UTF-8 bytes, code units, categories and common scripts. Filter hidden characters, non-ASCII, whitespace or bidi controls, and export the complete filtered table as TSV.
How to use it
- Paste text, open a UTF-8 file or load the sample, then select Inspect.
- Read the four counts and choose a table filter. Invisible characters use a visible label; your original text remains in the input.
- Copy the filtered TSV report or download it. A maximum of 300 table rows is rendered at once; exports include all filtered rows.
Errors and limits
At most 25,000 code points can be inspected in one run. An unpaired surrogate is an error, with its input position, rather than a fabricated character.
Official Unicode names and script identifiers use their standard names. Script recognition covers common scripts; Other means outside that set. Browser Unicode data determines categories and segmentation. Mixed-script checks are a heuristic, not a security audit.
Frequently asked questions
Why does one emoji have several rows?
Rows represent code points. Joiners, skin tones and other components can combine into one grapheme without becoming one code point.
Should I delete every invisible character?
No. Joiners are required by many emoji and writing systems. Inspect the context before using the normalizer’s optional removal controls.