Zero-Width Joiner U+200D

Copy the zero-width joiner (ZWJ, U+200D). See how it combines emoji into new ones and joins letters in Arabic and Indic scripts.

Remove the Zero-Width Joiner from your text

Paste your text below. It stays in your browser; nothing is uploaded.

Other hidden characters too? Scan for all of them

Codepoint
U+200D
Decimal
8205
HTML
‍
CSS
\200D
JS
\u200D
URL
%E2%80%8D
UTF-8
E2 80 8D
Category
Format (Cf)
Block
General Punctuation

The zero-width joiner (ZWJ, U+200D) is an invisible Unicode character that forces adjacent characters to join. Family, profession and gendered emoji are several emoji combined into one with ZWJ characters between them. In Arabic, Persian, Devanagari and other complex scripts, ZWJ forces letters to connect where they would otherwise appear in isolated forms.

How ZWJ Creates Emoji

If your device supports the combination, it renders one emoji instead of the parts.

Examples of ZWJ Sequences

SequenceResultWhat's happening
Woman + ZWJ + LaptopWoman TechnologistProfession emoji
Man + ZWJ + Woman + ZWJ + Girl + ZWJ + BoyFamilyFamily grouping
Person + ZWJ + Red HairPerson with Red HairAppearance modifier
White Flag + ZWJ + RainbowRainbow FlagFlag combination
Woman + ZWJ + Heart + ZWJ + WomanCouple with HeartRelationship emoji
Person + ZWJ + WheelchairPerson in WheelchairAccessibility emoji

Woman Technologist is three code points: Woman (U+1F469) + ZWJ (U+200D) + Laptop (U+1F4BB). A family emoji can be seven or more.

What Happens When ZWJ Sequences Aren't Supported

A device that doesn't support a sequence shows the component emoji side by side. That's why you sometimes get odd emoji combinations in messages: the sender's device combined them, yours didn't.

Common Uses

  • Composite emoji. Family groups, professions, gendered variants and accessibility emoji all use ZWJ sequences (skin tones use separate modifier characters).
  • Connected letter forms in Arabic and Persian. Letters change shape by position in a word. ZWJ forces the connected form even at word boundaries.
  • Devanagari and Indic ligatures. ZWJ creates specific conjunct forms in Hindi, Sanskrit and other scripts.
  • South Asian text layout. Bengali, Tamil, Telugu and other scripts use it to control how characters combine.

How to Type

PlatformMethod
WindowsNo direct shortcut. Used automatically by emoji keyboards.
macOSNo direct shortcut. Used automatically by the emoji picker.
LinuxPress Ctrl+Shift+U, type 200D, press Enter.
MobileYour phone inserts ZWJ automatically when you select combined emoji from the picker.
HTMLType ‍ or ‍ in your source code.
JavaScriptUse \u200D in strings.

ZWJ in Arabic and Persian Text

ZWJ was created for complex scripts, not emoji. Arabic and Persian letters have up to four forms: isolated, initial (start of word), medial (middle) and final (end). Adjacent letters decide which form appears.

ZWJ forces the connected form where a letter would normally stand alone. Persian connection rules differ from Arabic, so Persian writers need this fine control. For example, ZWJ after the last letter of a word forces its medial or initial form instead of its final form, which can change the meaning or visual style.

Technical Details

  • Category: Format (Cf).
  • Width: Zero. No visible glyph.
  • Line breaking: The Unicode Line Breaking Algorithm does not break directly after a ZWJ, so a ZWJ sequence stays on one line.
  • Joining behavior: The characters on either side use their connected forms, as if they were adjacent letters in one word.
  • Emoji behavior: Between two emoji, it makes the renderer look up the combined sequence in its emoji table.

Match ZWJ in regular expressions with \u200D.

Security Considerations

  • String length confusion. One visible emoji can be 7+ code points, which breaks code-point counts.
  • Text comparison issues. An exact match on a person emoji won't match its gendered or skin-toned version, since those are different sequences. Substring searches can also find the base emoji inside a longer sequence.
  • Input validation bypass. Character limits can be bypassed if they count visual characters differently from code points.

Counting Characters in ZWJ Emoji

Visual emojiCode pointsString length in JS
Single emoji (e.g., smile)12 (surrogate pair)
Emoji + skin tone24
Profession emoji (person + ZWJ + object)3-45-7
Family of four711

For character counters, length limits or truncation, count grapheme clusters with Intl.Segmenter or a grapheme-cluster library:

js
// JavaScript: count visual characters (grapheme clusters)const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });const count = [...segmenter.segment(text)].length;

How ZWJ Differs from Similar Characters

CharacterEffectPurpose
Zero-Width Joiner (U+200D)Joins charactersForces connection/combination
Zero-Width Non-Joiner (U+200C)Separates charactersPrevents joining
Zero-Width Space (U+200B)Creates break pointAllows line wrap
Combining Grapheme Joiner (U+034F)Merges into clusterGrapheme-level joining

ZWJ and ZWNJ are direct opposites. ZWNJ prevents connections in Persian and Arabic text.

Frequently Asked Questions

What does the zero-width joiner do in emoji?

The ZWJ (U+200D) glues several emoji into one combined emoji. For example, Woman + ZWJ + Rocket = Woman Astronaut. Family, profession and gendered emoji (such as Woman Running) use ZWJ sequences. Skin tones use modifier characters, not ZWJ.

Why do some emoji show as multiple characters instead of one?

When a platform doesn't support a ZWJ sequence, it shows the individual emoji side by side. The ZWJ is still in the text, but the platform can't render the combined version.

How is ZWJ different from zero-width space?

ZWJ (U+200D) joins characters together. Zero-width space (U+200B) separates them with a potential line break. Both are invisible and zero-width, but they do opposite jobs.

Is ZWJ used in languages other than emoji?

Yes. ZWJ was designed for Arabic, Persian, Hindi and other scripts before emoji adopted it. In those scripts it forces letters to use their connected forms, even at word boundaries.

How many emoji use ZWJ sequences?

The Unicode emoji specification lists over 1,600 recommended (RGI) ZWJ sequences as of Unicode 17. The number grows with each release as new professions, family groupings, gender variants, skin-tone combinations and flag combinations are added.

Related Characters

Need to find every hidden character in your text, not just the Zero-Width Joiner?

Open the viewer