{"schema":"cpc-unicode-answer-v1","question":"Why can an emoji sequence show as several characters?","answer":"A zero-width joiner can ask a renderer to draw the surrounding scalars as one emoji glyph. The same string can show as several characters when that request is not applied. Code points: U+1F469, U+200D, U+1F4BB. The joiner does not guarantee a single glyph. Shaping and emoji sequence support were not tested. No fallback is suggested. Font coverage, shaping, and application acceptance were not tested, so those results are unknown.","unicodeVersion":"18.0.0","purpose":"general","citation":"Do not invent a platform-support claim from this data.","page":"/answers/why-an-emoji-sequence-can-show-as-several-characters/","markdown":"/answers/why-an-emoji-sequence-can-show-as-several-characters.md","sample":"👩‍💻","codepoints":[{"codepoint":"U+1F469","name":"WOMAN","displayLabel":"👩","warnings":[],"explanations":[]},{"codepoint":"U+200D","name":"ZERO WIDTH JOINER","displayLabel":"[ZWJ]","warnings":["space-or-formatting","zero-width-joiner","emoji-zwj-sequence"],"explanations":[{"id":"zero-width-joiner","title":"Zero-width joiner","behavior":"A format character participating in context-sensitive shaping and some emoji sequences.","limitation":"It does not ensure an emoji sequence or ligature will render as one glyph.","fix":"Check the complete grapheme or emoji sequence and the target font/shaping engine.","source":"https://www.unicode.org/reports/tr51/","alternatives":[],"evidenceTier":"standards-informed-editorial","evidence":{"behavior":"standards-informed","compatibility":"not-tested","repair":"editorial-guidance"}},{"id":"emoji-zwj-sequence","title":"Emoji sequence that can stay several characters","behavior":"A zero-width joiner can ask a renderer to draw the surrounding scalars as one emoji glyph. The same string can show as several characters when that request is not applied.","limitation":"The joiner does not guarantee a single glyph. Shaping and emoji sequence support were not tested.","fix":"Keep the whole sequence when one emoji is required. Remove U+200D only when the destination must keep the surrounding characters separate.","source":"https://www.unicode.org/reports/tr51/","alternatives":[],"evidenceTier":"standards-informed-editorial","evidence":{"behavior":"standards-informed","compatibility":"not-tested","repair":"editorial-guidance"}}]},{"codepoint":"U+1F4BB","name":"PERSONAL COMPUTER","displayLabel":"💻","warnings":[],"explanations":[]}],"comparison":null,"graphemes":{"status":"available","method":"runtime-intl-segmenter","unicodeDataVersion":"runtime-unknown","count":1,"segments":[{"text":"👩‍💻","utf16Offset":0,"codepoints":["U+1F469","U+200D","U+1F4BB"]}]},"normalizationChanged":{"NFC":false,"NFD":false,"NFKC":false,"NFKD":false},"normalizationUnicodeDataVersion":"runtime-unknown","targetCompatibility":{"status":"unknown","evidenceTier":"not-tested","purpose":"general","explanation":"No OS, font, browser, application, field policy or rendering engine was tested. Unicode validity and segmentation do not establish actual display or acceptance."}}