Emoji Sequence Analyzer: Decode ZWJ, Skin Tones, and Keycaps

What Is an Emoji Sequence?

Many emojis are not single characters — they are sequences of multiple Unicode code points that combine to form one visible glyph. When you paste 👩‍💻 into a text editor, what looks like one emoji is actually three separate code points joined together. Understanding this structure is essential for developers, designers, and anyone curious about how emoji actually work.

The EmojiFYI Sequence Analyzer takes any emoji or emoji sequence and breaks it apart, showing you each component code point, its name, and the type of sequence being used.

Types of Emoji Sequences

ZWJ영폭 결합자 (ZWJ)
여러 이모지를 하나의 합성 이모지로 결합하는 데 사용되는 보이지 않는 유니코드 문자(U+200D).
Sequences

ZWJ stands for Zero Width Joiner (U+200D). It is an invisible character that tells rendering engines to combine the emojis on either side of it into a single glyph.

Example: 👩‍💻 Woman Technologist is composed of: 1. 👩 Woman (U+1F469) 2. U+200D (Zero Width Joiner) 3. 💻 Laptop (U+1F4BB)

The ZWJ signals that these should be fused into a single image. On platforms that support it, you see 👩‍💻. On platforms that do not, you see the three components side by side: 👩💻.

More complex ZWJ sequences chain multiple emojis together:

👨‍👩‍👧‍👦 Family: Man, Woman, Girl, Boy is built from: - 👨 Man + ZWJ + 👩 Woman + ZWJ + 👧 Girl + ZWJ + 👦 Boy

That is seven code points producing one emoji.

Skin Tone Modifier Sequences

The Unicode Standard defines five skin tone modifiers (based on the Fitzpatrick scale):

Modifier Code Point Sample
Light U+1F3FB 👍🏻
Medium-Light U+1F3FC 👍🏼
Medium U+1F3FD 👍🏽
Medium-Dark U+1F3FE 👍🏾
Dark U+1F3FF 👍🏿

When you pick a skin tone for 👍 Thumbs Up, the result is a two-code-point sequence: the base emoji followed immediately by a modifier. The Sequence Analyzer shows both components with their code points.

Some ZWJ sequences combine skin tones on multiple people. 👫🏽 Couple holding hands with medium skin tone uses skin tone modifiers on both figures inside the ZWJ chain.

Keycap Sequences

Keycap emojis like 1️⃣ 2️⃣ #️⃣ *️⃣ are three-code-point sequences:

  1. The base character (a digit, #, or *)
  2. U+FE0F (Variation Selector-16, which signals emoji presentation)
  3. U+20E3 (Combining Enclosing Keycap)

For example, 1️⃣ is: - U+0031 (Digit One: 1) - U+FE0F (Variation Selector-16) - U+20E3 (Combining Enclosing Keycap)

This is why keycap emojis sometimes appear as plain text digits in environments that do not support full emoji rendering — the base character is just the number.

Flag Sequences

Country flag emojis (🇺🇸, 🇯🇵, 🇰🇷) use Regional Indicator Symbols. Each flag is two code points: one for each letter of the ISO 3166-1 alpha-2 country code.

🇺🇸 (United States) is: - 🇺 Regional Indicator U (U+1F1FA) - 🇸 Regional Indicator S (U+1F1F8)

The Sequence Analyzer identifies the country code and tells you which country the flag represents.

Subdivision flags (🏴󠁧󠁢󠁥󠁮󠁧󠁿 England) use tag sequences — a different, more complex mechanism involving invisible tag characters (U+E0000 range).

How to Use the Sequence Analyzer

Step 1: Open the Tool

Navigate to /tools/sequence-analyzer/.

Step 2: Paste or Type an Emoji

Click the input field and paste an emoji. You can paste a single emoji, a ZWJ sequence, or even a string containing multiple emojis — the analyzer processes each one.

Good sources for complex emoji sequences to analyze: - Copy a family emoji (👨‍👩‍👦) from any messaging app - Copy a profession emoji (🧑‍🚀 Astronaut, 👩‍🎤 Woman Singer) - Copy a couple emoji (💑, 👫) - Type a keycap: 0️⃣ 1️⃣ #️⃣

Step 3: Read the Breakdown

The analyzer displays a table showing:

  • Position — the order of each code point in the sequence
  • Code Point — the hexadecimal Unicode value (e.g., U+1F469)
  • Character — the rendered glyph or description for invisible characters
  • Name — the official Unicode name
  • Type — whether it is a base emoji, ZWJ, modifier, variation selector, or other component

For ZWJ sequences, the tool also names the full sequence (e.g., "Woman Technologist") and links to the emoji detail page.

Step 4: Explore Component Emojis

Clicking any component in the breakdown opens its own emoji detail page. This is useful for understanding which base emojis combine to form a ZWJ sequence, and whether those bases are available as standalone emojis on all platforms.

Practical Uses

For Developers

  • Verify that a string contains exactly the code points you expect before storing it in a database
  • Debug rendering issues where an emoji displays as multiple separate characters
  • Understand why emoji.length in JavaScript returns unexpected values for ZWJ sequences (each code point counts separately in UTF-16UTF-16
    문자당 2 또는 4바이트를 사용하는 가변 너비 유니코드 인코딩으로, JavaScript와 Java에서 사용됩니다.
    )

For Content Creators

  • Confirm that a complex family emoji is a recognized Unicode sequence rather than a platform-specific hack
  • Check which component emojis make up a sequence before using it in a context where rendering support may be limited

For the Curious

  • Discover that 🏳️‍🌈 Rainbow Flag is built from 🏳️ White Flag + ZWJ + 🌈 Rainbow
  • See that 🧑‍🤝‍🧑 People Holding Hands chains together three emojis
  • Understand why 🇨🇳 and 🇹🇼 are just pairs of invisible regional indicator letters

Combining the Analyzer with Other Tools

The Sequence Analyzer works well alongside the Compare tool. After breaking down a ZWJ sequence into its parts, you can check each component in the Compare tool to see how platforms render the base emojis — giving insight into why the combined sequence might look different on Samsung versus Apple.

For a deeper look at ZWJ sequences in general, see the EmojiFYI glossary article on ZWJ Sequences.

관련 도구

🔀 플랫폼 비교 플랫폼 비교
Apple, Google, Samsung, Microsoft 등 다양한 플랫폼에서 이모지가 어떻게 표시되는지 비교해 보세요. 시각적 차이를 나란히 확인할 수 있습니다.
🔍 시퀀스 분석기 시퀀스 분석기
ZWJ 시퀀스, 피부톤 수정자, 키캡 시퀀스, 국기 쌍을 개별 구성 요소로 분해합니다.

용어 사전 항목

이모지 이모지
일본어 '그림 문자(絵文字)'를 뜻하며, 디지털 커뮤니케이션에서 감정과 개념을 표현하는 작은 그래픽 기호.
유니코드 유니코드
모든 문자 체계와 이모지를 포함하여 각 문자에 고유한 번호를 부여하는 범용 문자 인코딩 표준.
유니코드 표준 유니코드 표준
유니코드 컨소시엄이 유지하는 문자, 속성, 알고리즘, 인코딩을 정의하는 완전한 문자 인코딩 시스템.
이모지 표현 이모지 표현
문자를 컬러풀한 이모지 글리프로 기본 렌더링하거나 변형 선택자로 전환하는 표시 방식.
이모지 시퀀스 이모지 시퀀스
하나의 이모지 문자를 나타내기 위해 결합되는 하나 이상의 유니코드 코드 포인트 순서.
피부색 수정자 피부색 수정자
피츠패트릭 척도에 기반한 5개의 유니코드 수정 문자로 사람 이모지의 피부색을 변경합니다.
변형 선택자 (VS) 변형 선택자 (VS)
문자를 텍스트(단색) 또는 이모지(컬러) 표현으로 렌더링할지 결정하는 유니코드 문자.
영폭 결합자 (ZWJ) 영폭 결합자 (ZWJ)
여러 이모지를 하나의 합성 이모지로 결합하는 데 사용되는 보이지 않는 유니코드 문자(U+200D).
지역 표시기 (RI) 지역 표시기 (RI)
ISO 3166-1 코드에 따라 조합하면 국기 이모지를 형성하는 쌍을 이루는 유니코드 문자.
코드 포인트 코드 포인트
유니코드 표준에서 각 문자에 부여되는 고유한 숫자 값으로, U+XXXX 형식으로 표기됩니다.
UTF-16 UTF-16
문자당 2 또는 4바이트를 사용하는 가변 너비 유니코드 인코딩으로, JavaScript와 Java에서 사용됩니다.

관련 스토리