Invisible Character Detector

Paste any text to reveal hidden Unicode: zero-width spaces, soft hyphens, directional marks, no-break spaces and other characters you can't see but computers can. Remove them all in one click.

🔒 Your text never leaves your device — all analysis happens in your browser.

0/10000 characters
Every invisible character this tool detects
Code point(s)NameSeverityWhy it appears
U+200BZero Width SpacesuspiciousInvisible word-break hint; abused for tracking and steganography.
U+200CZero Width Non-JoinercontextualLegitimate in Persian and Indic scripts; suspicious in Latin prose.
U+200DZero Width JoinercontextualRequired inside emoji sequences (👨‍👩‍👧) and Indic scripts.
U+2060Word JoinersuspiciousInvisible no-break glue; rare in normal prose.
U+FEFFZero Width No-Break Space (BOM)suspiciousOnly legitimate as a byte-order mark at file start; mid-text is a red flag.
U+2061–U+2064Invisible Math OperatorsuspiciousFunction application / invisible times / separator / plus — math notation only.
U+180EMongolian Vowel SeparatorsuspiciousReclassified as a format character; renders invisibly.
U+034FCombining Grapheme JoinersuspiciousRare collation edge cases only.
U+00A0No-Break SpacecontextualVery common (HTML  , typography); also a mild LLM tell.
U+202FNarrow No-Break SpacecontextualThe headline ChatGPT artifact; also legitimate French typography.
U+2000–U+2002En Quad / Em Quad / En SpacecontextualTypographic spacing.
U+2003Em SpacecontextualTypographic spacing; statistically associated with LLM output.
U+2004–U+200ATypographic Space (Three-Per-Em … Hair Space)contextualFine typographic spacing widths.
U+205FMedium Mathematical SpacesuspiciousMath layout only.
U+3000Ideographic SpacecontextualStandard full-width space in CJK text; suspect in Latin text.
U+1680Ogham Space MarkcontextualOgham script only.
U+200E–U+200FLeft-to-Right / Right-to-Left MarkcontextualLegitimate bidirectional text layout.
U+061CArabic Letter MarkcontextualArabic text layout.
U+202A–U+202CDirectional Embedding / PopcontextualLegacy bidirectional embedding controls.
U+202D–U+202EDirectional Override (LRO/RLO)suspiciousTrojan Source attack vector (CVE-2021-42574) — almost always malicious in code.
U+2066–U+2069Directional IsolatecontextualModern bidirectional isolation controls.
U+00ADSoft HyphensuspiciousInvisible unless the line wraps at it.
U+2028Line SeparatorsuspiciousBreaks JavaScript string literals; invisible in most editors.
U+2029Paragraph SeparatorsuspiciousSame risks as Line Separator.
U+FE00–U+FE0FVariation SelectorcontextualVS15/VS16 pick text vs emoji presentation; also a known steganography vector.
U+E0100–U+E01EFVariation Selector SupplementcontextualCJK ideographic variation; steganography vector.
U+E0000–U+E007FUnicode Tag CharactersuspiciousLegitimate only in emoji subdivision flags (🏴󠁧󠁢󠁳󠁣󠁴󠁿); arbitrary tags hide invisible ASCII payloads used in prompt-injection attacks.
U+115F–U+1160Hangul Choseong/Jungseong FillersuspiciousKorean jamo composition; abused for blank text.
U+3164Hangul FillersuspiciousCommonly abused for invisible usernames.
U+FFA0Halfwidth Hangul FillersuspiciousSame abuse pattern as Hangul Filler.
U+2800Braille Pattern BlankcontextualLegitimate Braille; abused as invisible text elsewhere.
U+FFFCObject Replacement CharactersuspiciousPlaceholder for embedded objects; abused for blank nicknames.
U+FFF9–U+FFFBInterlinear Annotation ControlsuspiciousRuby-text plumbing; should not appear in plain text.
U+206A–U+206FDeprecated Format ControlsuspiciousDeprecated shaping/digit-shape controls.
U+0000NullsuspiciousShould never appear in text.
U+000B–U+000CVertical Tab / Form FeedsuspiciousLegacy control characters.

Checking whether text came from an AI tool? Try the AI watermark checker, or identify any visible symbol with the symbol analyzer.