What Is Zero Width Joiner (U+200D)? Meaning and Uses

Zero width joiner is a Unicode character at code point U+200D. Its job has nothing to do with adding blank space. Instead, it can connect characters in a sequence so they are displayed as a combined glyph when the font or rendering system supports that combination. This ability is widely used in modern emoji sequences, including family and multi-person emoji.

U+200D

Zero Width Joiner

Copy it below and test it in the field you plan to use.

This guide covers where zero width joiner comes from, how it builds emoji combinations, where it shows up in real writing systems beyond emoji, and how it differs from zero width space.

Where Zero Width Joiner Comes From

Zero width joiner is a Unicode format character with several uses. Unicode describes it as a joiner used in complex scripts and as a connector in emoji ZWJ sequences.

Many writing systems use shaping rules to decide how characters should appear next to each other. The same character can look different depending on the characters around it.

Zero width joiner can be used in certain sequences when a specific joining behavior is needed. It gives the text-rendering system information about how the characters should be handled.

This distinction matters because most text shaping happens automatically. Zero width joiner is an additional character that can affect the result in supported sequences.

PurposeCharacterEffect
JoiningZero Width Joiner (U+200D)Can connect characters in supported sequences
Prevent joiningZero Width Non-Joiner (U+200C)Prevents certain joining behavior

Unlike Hangul Filler, zero width joiner does not have a visible glyph of its own. It is a format character that can affect how surrounding characters are rendered.

The Emoji Connection: Family Icons, Skin Tones, and More

This is where most people actually encounter zero width joiner, even without realizing it.

Emoji systems can use sequences of existing emoji characters joined with U+200D instead of storing every combination as one separate character. Unicode calls these emoji ZWJ sequences.

For example:

๐Ÿ‘จ + ZWJ + ๐Ÿ‘ฉ + ZWJ + ๐Ÿ‘ง + ZWJ + ๐Ÿ‘ฆ โ†’ ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ

On a device or app that supports the sequence, this can display as one combined family emoji. If the system does not support that particular sequence, the ZWJ characters can be ignored and the individual emoji can appear separately.

Some multi-person emoji use the same approach. Emoji ZWJ sequences can also be used for other combinations that Unicode has defined and recommends.

Skin-tone modifiers are a separate Unicode mechanism, although they can appear inside some larger emoji sequences that also use ZWJ. So not every skin-tone emoji is created by ZWJ alone.

This is also why emoji support can look different across different apps. A valid ZWJ sequence still depends on the receiving system having support for that specific sequence and a corresponding glyph.

The approach also makes it possible to create many combinations from smaller sets of characters instead of assigning a separate Unicode character to every possible emoji combination.

Zero Width Joiner Outside of Emoji

Long before emoji became its most visible use, zero width joiner was used in complex writing systems. Unicode describes ZWJ as a joiner used in complex scripts as well as emoji sequences.

Some scripts use joiner characters to control how nearby characters are shaped or connected. The exact result depends on the script, character sequence, font, and rendering system.

Arabic and Indic scripts have specific shaping rules, and joiner characters can be important in particular sequences. However, ZWJ does not simply force every pair of letters to become one glyph. Its effect depends on the text sequence and the shaping rules being used.

This script-focused use is important because ZWJ is not an emoji-only character. Unicode defines it as a general format character with uses in complex scripts and emoji sequences.

Zero Width Joiner vs Zero Width Space

CharacterJobVisual Effect
Zero Width Joiner (U+200D)Connects characters in supported sequencesCan produce a combined form
Zero Width Space (U+200B)Marks a possible line-break pointAdds no visible mark

Zero width space works in a different way from zero width joiner. It provides an invisible opportunity for a line break where a normal space cannot be used.

A non-breaking space belongs to a different group of characters. It is used to control spacing and line wrapping rather than joining characters into a sequence.

How to Test a Zero Width Joiner Sequence Before Sending It

Since support for specific sequences can vary, it helps to check a combination before relying on it for something important.

The simplest test is sending the sequence to yourself first. If possible, view it on more than one device or app.

If it displays as one combined emoji where you check it, the sequence is supported there. If it appears as separate emoji, that system may not support that particular ZWJ sequence. Unicode documents this fallback behavior for unsupported emoji ZWJ sequences.

Copying a sequence from a source you do not fully trust can also bring extra invisible characters with it. Those extra characters can change how the final sequence behaves.

Zero Width Joiner FAQ

What does zero width joiner actually do?

It connects characters in supported sequences and can cause them to be displayed as a combined glyph. It has no visible mark of its own.

Why do some emoji combinations show as separate icons instead of one image?

This happens when the device or app does not support the exact zero width joiner sequence. The ZWJ characters can be ignored, leaving the individual emoji as separate images.

Does zero width joiner work the same on every device?

No. Support depends on the specific sequence and the software displaying it. A sequence can appear as one combined emoji on one system and as separate emoji on another.

Can I use zero width joiner outside of emoji?

Yes. Unicode describes ZWJ as having uses in complex scripts as well as emoji sequences. Its effect depends on the script and the specific character sequence.

Is zero width joiner the same as zero width space?

No. Zero width joiner is used to connect characters in supported sequences, while zero width space provides an invisible line-break opportunity.

Does zero width joiner count toward a character limit?

It can. Character limits depend on how each platform or application counts Unicode characters. Do not assume that a zero width character is ignored by a platform’s limit.

Why does my custom emoji combination not work on my friend’s phone?

Their device or app may not support that specific zero width joiner sequence. Unicode notes that unsupported emoji ZWJ sequences can fall back to separate emoji.

Copy zero width joiner from the button above, then test any custom emoji sequence in the exact app you plan to use it in, since support for combined sequences can vary by device and software.

2 thoughts on “What Is Zero Width Joiner (U+200D)? Meaning and Uses”

Comments are closed.