What Is an Emoji SequenceEmoji Sequence
An ordered set of one or more Unicode code points that together represent a single emoji character.?
Many emojis are not single characters โ they are sequences of multiple UnicodeUnicode
Universal character encoding standard that assigns a unique number to every character across all writing systems and symbol sets, including emoji. code points that combine to form one visible glyph. When you paste ๐ฉโ๐ป into a text editor, what looks like one emojiEmoji
A Japanese word (็ตตๆๅญ) meaning 'picture character' โ small graphical symbols used in digital communication to express ideas, emotions, and objects. 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 pointCode Point
A unique numerical value assigned to each character in the Unicode standard, written in the format U+XXXX (e.g., U+1F600 for ๐)., its name, and the type of sequence being used.
Types of Emoji Sequences
ZWJ Sequences
ZWJ stands for Zero Width JoinerZero Width Joiner (ZWJ)
An invisible Unicode character (U+200D) used to join multiple emoji into a single composite emoji, such as combining people and objects into profession emoji. (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 ModifierSkin Tone Modifier
Five Unicode modifier characters based on the Fitzpatrick scale that change the skin color of human emoji (U+1F3FB to U+1F3FF). Sequences
The Unicode StandardUnicode Standard
The complete character encoding system maintained by the Unicode Consortium, defining characters, properties, algorithms, and encoding forms. 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:
- The base character (a digit, #, or *)
- U+FE0F (Variation Selector-16, which signals emoji presentationEmoji Presentation
The default rendering of a character as a colorful emoji glyph, either inherently or when triggered by Variation Selector-16.) - 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 IndicatorRegional Indicator (RI)
Paired Unicode letters (U+1F1E6 to U+1F1FF) that form country flag emoji when combined according to ISO 3166-1 alpha-2 codes. 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 selectorVariation Selector (VS)
Unicode characters (VS-15 U+FE0E and VS-16 U+FE0F) that modify whether a character renders in text (monochrome) or emoji (colorful) presentation., 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.lengthin JavaScript returns unexpected values for ZWJ sequences (each code point counts separately in UTF-16UTF-16
A variable-width Unicode encoding that uses 2 or 4 bytes per character, used internally by JavaScript, Java, and Windows.)
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.