This page finds U+200D ZERO WIDTH JOINER. The sample below contains a family emoji: one glyph, seven code points, two ZWJs doing the gluing. Everything runs in your browser — nothing is uploaded.
An invisible character that asks neighbouring characters to combine. It's how emoji sequences work: 👨 + ZWJ + 👩 + ZWJ + 👧 renders as a single family emoji. It also has a legitimate, required role in scripts like Arabic and Devanagari.
Mostly emoji — copied from chat apps, tweets, commit messages. Also from complex-script text, and occasionally from "invisible ink" tricks that hide data in usernames or messages.
Length checks: JavaScript's .length for the family emoji above is 8, not 1 — surprise validation failures on "max 10 characters" fields. Naive truncation slices mid-sequence and leaves broken emoji halves. Some systems reject ZWJ in identifiers or usernames; others allow it, enabling spoofed lookalike handles.
No — that's the honest caveat. Stripping ZWJ from emoji turns one family glyph into three separate people, and stripping it from Arabic or Indic text can change how words render. Remove it from code, identifiers and config; leave it in real emoji and complex-script prose. The x-ray above shows each one so you can decide; the "invisible characters" rule removes them if you want that.
Guides for the common cleanup jobs — what the source puts into your text, exactly what it breaks, and the tool preloaded with a demonstration:
AI-generated text · Text copied from Word / Google Docs · Text copied from a PDF · Pasted code that won’t run · CSV & spreadsheet data · Invisible watermarks · Many files at once (batch)
Dedicated pages for the usual suspects — what each one is, where it sneaks in from, the exact errors it causes, and how to find it in your editor:
Zero-width space (U+200B) · Non-breaking space (U+00A0) · Byte order mark (BOM) (U+FEFF) · Soft hyphen (U+00AD) · Smart quotes · Em dash (U+2014) · Narrow no-break space (U+202F) · Ideographic space (U+3000) · Zero-width joiner (U+200D) · Zero-width non-joiner (U+200C) · Word joiner (U+2060) · Right-to-left override (U+202E) · Left-to-right mark (U+200E) · Line separator (U+2028) · Variation selector-16 (U+FE0F) · Object replacement character (U+FFFC) · Hangul filler (U+3164) · Braille pattern blank (U+2800) · Ligatures · Minus sign (U+2212)
Страницы на русском — те же инструменты с переведёнными правилами и примерами под задачу:
Невидимые символы в тексте · Убрать невидимые символы · Почистить текст нейросети · Неразрывные пробелы в числах · Текст из Word · Код не запускается