Invisible character guide
Zero Width Joiner (ZWJ, U+200D) Copy & Paste
Copy the Zero Width Joiner (ZWJ, U+200D), an invisible character that helps supported emoji display as one picture and can affect letter connections in some writing systems. Explore examples and check pasted text for a ZWJ.
Zero Width Joiner · U+200D
Copy Zero Width Joiner
Copy the Zero Width Joiner (ZWJ, U+200D) with one click. It is an invisible character that helps supported emoji appear as one picture and can affect how letters connect in some languages. Brackets only mark its position and are not copied.
Character
The field contains only U+200D · ZERO WIDTH JOINER. Brackets are visual markers.
Unicode
U+200D
Name
Zero Width Joiner
Type
Format character
UTF-8 code
E2 80 8D
How Zero Width Joiner Works in Emoji
On supported devices, ZWJ can make specific emoji appear as one picture. Other devices may still show separate emoji. These are known combinations — adding U+200D does not turn every emoji pair into one picture.
Without ZWJ
👩💻
Separate emoji side by side
With ZWJ
👩💻
May appear as one emoji picture
What makes up this emoji
U+1F469 + U+200D + U+1F4BB
Person + laptop joined into one emoji on supporting platforms.
Test Your Copied ZWJ Character
Paste ordinary text or a full emoji sequence to check for U+200D. The checker counts the individual characters that make up the text, which may differ from the number of emoji pictures you see. Your text stays on this device and is never uploaded.
Character parts
0
U+200D count
0
Visible characters
0
Result
Waiting for paste
What Is a Zero Width Joiner?
A Zero Width Joiner (ZWJ, U+200D) is an invisible Unicode character. It does not show a mark by itself. Instead, it helps neighboring characters appear together — most visibly in emoji sequences, and also in some writing systems where letters connect.
In plain terms: ZWJ is glue, not blank paper. It is a poor choice for an invisible nickname or empty bio. Those jobs usually need a blank-looking spacing character or a zero-width break, not a joining control. If you only need invisible break points, prefer Zero Width Space (U+200B). For blank-looking display text, compare options on the empty character page.
Outside emoji, ZWJ can affect how letters connect in some writing systems. Deleting every U+200D because it “looks empty” can split a combined emoji or change how letters appear. Check the nearby characters before removing it.
To inspect hidden marks inside a longer string without bulk-deleting joining controls, open the invisible character detector.
Technical Codes for Zero Width Joiner (U+200D)
Use these only when adding ZWJ to a webpage or code. The buttons in this section copy technical code text, not the invisible character itself.
| Unicode Name | ZERO WIDTH JOINER |
|---|---|
| Abbreviation | ZWJ |
| Code Point | U+200D |
| Decimal | 8205 |
| Unicode Block | General Punctuation |
| General Category | Cf — Format |
| Width | Zero Width |
| UTF-8 | E2 80 8D |
| HTML Named Entity | ‍ |
| HTML Decimal | ‍ |
| HTML Hex | ‍ |
| JavaScript / JSON | \u200D |
| Python | \u200D |
Unicode Name
ZERO WIDTH JOINERAbbreviation
ZWJUnicode
U+200DDecimal
8205HTML Named
‍HTML Decimal
‍HTML Hex
‍JavaScript / JSON
\u200DPython
\u200DUTF-8
E2 80 8DJavaScript example (advanced)
const zwj = "\u200D";
// U+200D
console.log(zwj.codePointAt(0)?.toString(16)); // "200d"
// Woman Technologist emoji
const emoji = "👩\u200D💻";
console.log(emoji); // 👩💻
// 3 Unicode code points:
// U+1F469, U+200D, U+1F4BB
console.log(Array.from(emoji).length); // 3
// Verify that the text contains a ZWJ
console.log(emoji.includes("\u200D")); // trueZero Width Joiner vs Zero Width Non-Joiner vs Zero Width Space
These three characters sit near each other in Unicode tables and are easy to mix up. ZWJ asks characters to join. ZWNJ asks them not to join. Zero Width Space provides an invisible break opportunity without joining behavior.
ZWJ is not only an emoji detail. It also participates in text shaping for some languages. Deleting every U+200D from a document can change correct spelling or letter forms. Prefer reviewing matches one type at a time in the detector instead of a bulk “remove all zero-width characters” wipe.
| Character | Unicode | Best for | Skip when | Common mix-up |
|---|---|---|---|---|
| Zero Width Joiner | U+200D | Request joining: emoji sequences and some script shaping. | As a generic blank filler — it is a format control, not empty spacing. | Pasting ZWJ alone into a username and expecting a blank-looking name. |
| Zero Width Non-Joiner | U+200C | Request that neighboring characters do not join in connecting scripts. | Everyday invisible spacing or blank names. | Using ZWNJ as a quiet spacer, then wondering why joined letters split. |
| Zero Width Space | U+200B | Invisible break opportunity with no visible gap. | Joining emoji or letters — that is ZWJ territory. | Putting ZWSP between emoji and expecting a single combined glyph. |
| Hangul Filler | U+3164 | Blank-looking wide character that still occupies space. | When you need zero width or a joining control. | Treating U+3164 as interchangeable with ZWJ or ZWSP in filters and forms. |
How to Type or Insert a Zero Width Joiner
Copying U+200D from this page is the most portable method on Windows, macOS, iPhone, and Android. Keyboards rarely expose ZWJ as a dedicated key, and shortcuts differ by editor.
In a website or notes app, tap Copy Zero Width Joiner, paste into the test box here first, then paste into the field where you need it. If you are adding it in code, use an escape such as \u200D in JavaScript or Python, or the HTML entity ‍.
If an app removes or rejects the character after you save, that field may not support it. Try another field or use the detector to check what was kept; there is no universal shortcut that bypasses an app’s rules.
Why Are My Emoji Not Joining?
A ZWJ sequence displays as one emoji picture only when the device, app, and exact character sequence support that combination. Try this checklist before creating the sequence again.
- Confirm U+200D is still there. Paste into the checker above. Chat apps, email, and profile fields sometimes remove invisible characters when text is sent or saved.
- Match a known sequence. Start from the examples on this page (Woman Technologist, Family, Rainbow Flag). Random emoji pairs plus a ZWJ usually stay separate.
- Check the order and all parts of the emoji. A missing emoji-style marker, an extra character, or a different order can stop a sequence from working on another device.
- Try another app or device. Emoji support varies. The same text can appear as one emoji picture in one place and as two or three separate emoji elsewhere.
- Remember that one emoji picture can contain several characters. Use the checker above to see the parts of the sequence when a display result is unexpected.
If the tester shows the ZWJ and the sequence still will not join, the destination simply may not ship that combination yet. Keep the bytes if the text must stay portable; change the display expectation instead of deleting U+200D by default.
Frequently Asked Questions
What is a Zero Width Joiner (ZWJ)?
A Zero Width Joiner is Unicode U+200D, an invisible character that helps certain characters appear together. It is most often used in emoji sequences, where supported devices can show several emoji as one picture. It can also affect how letters connect in some writing systems.
How do I copy and paste U+200D?
Tap Copy Zero Width Joiner near the top of this page, then paste into the Test Your Copied ZWJ Character box to confirm you got U+200D. On iPhone and Android, use the same copy button in Safari or Chrome. If clipboard access is blocked, select the readonly character field between the brackets and copy manually.
How does Zero Width Joiner work in emoji?
On supported devices, some sequences containing U+200D display as one emoji picture — for example, woman + ZWJ + laptop can become Woman Technologist. Other devices may show the emoji separately. Adding a ZWJ does not make every emoji pair into a new picture.
What is the difference between ZWJ and ZWNJ?
ZWJ (U+200D) requests joining. ZWNJ (U+200C) requests that characters do not join. Neither is a general blank space, and neither should be confused with Zero Width Space (U+200B), which provides an invisible line-break opportunity. For ZWNJ copy tools and Persian examples, open the Zero Width Non-Joiner page.
How do I type a Zero Width Joiner on Windows, iPhone, or Android?
There is no universal keyboard shortcut that works in every device and app. The most reliable option is to copy U+200D from this page and paste it where you need it. Mobile keyboards rarely offer ZWJ directly. If you are adding it in code, use the technical reference below.
Why are my ZWJ emoji sequences not displaying correctly?
Use the checklist on this page: confirm that U+200D is still present, make sure the full sequence is a known combination, and try another app or device. An emoji can look like one picture while containing several characters, and apps sometimes remove invisible characters when text is copied or saved.
Related Unicode Tools
ZWJ is a joining control. These tools cover zero-width space, empty characters, detection, and blank text.
Zero Width Non-Joiner (U+200C)
Copy ZWNJ and see how it stops letters from joining.
Zero Width Space (U+200B)
Copy an invisible break character with no joining behavior.
Invisible Character Detector
Find U+200D and other hidden characters without bulk-deleting them.
Empty Character Copy Paste
Compare empty-looking Unicode options side by side.
Hangul Filler (U+3164)
Copy a blank-looking character that still occupies space.
Blank Text Generator
Generate longer blank-looking strings for messages and bios.