Invisible character reference · U+200D

Zero Width Joiner (U+200D)

The invisible "glue" that joins emoji and scripts — and a character that shows up unexpectedly in copied AI text, sometimes as an invisible tracking mark. Here's the guide and remover.

By NoAtMark · Published Aug 13, 2026

The short version

PropertyValue
NameZero Width Joiner (ZWJ)
Code pointU+200D
UTF-8 bytesE2 80 8D
AppearanceInvisible
PurposeJoins characters (emoji sequences, complex scripts)
DangerBreaks matching; can act as an invisible tracker

Why it breaks things

  • Emoji sequences. A family or skin-tone emoji is built from multiple characters joined by ZWJ. Copy that text and the invisible joiners come with it.
  • Copied AI output. Zero width joiners can appear in text copied from AI assistants and web pages, even when you don't see any emoji.
  • Tracking marks. ZWJ is one of the characters used to build invisible fingerprints in text — a way to mark copies or trace leaks.
  • Data & code. Like other invisible characters, an unexpected ZWJ breaks string equality and validation.

Remove it in one click

Paste text on the left, then hit Scan to see every U+200D ZWJ.

Note: removing a ZWJ can change how a joined emoji renders — that's expected and harmless. For files, use the file cleaner.

Frequently asked questions

Will removing ZWJ break emoji?

It can change how joined emoji (like a family) render — they may split into individual emoji. That's the intended trade-off when you want clean text.

Is ZWJ a tracking mark?

It's one of the characters used in invisible fingerprinting. If a scan finds ZWJ where you don't expect emoji, it may be a tracker.

How do I see ZWJ?

It's invisible. A scanner reports it by code point and position.

References & further reading