The current emoji standard defines a long list of ZWJ sequences. Two of these sequences are female astronaut, 👩🚀, represented by the codepoints 1F469 200D 1F680
; and female water polo player, 🤽♀️, 1F93D 200D 2640 FE0F
.
The female astronaut is made up of the codepoints for woman 1F469
, followed by a zero-width joiner 200D
, followed by a space rocket 1F680
.
The female water polo player is made up of the codepoints for water polo player 1F93D
, followed by a zero width joiner 200D
, followed by the female sign 2640
, followed by a variant marker meaning "emoji representation" FE0F
.
This seems inconsistent. Both sequences are part of the same standard.
Why do the "profession" sequences tend to use the "woman" codepoint before the activity, whilst the sports sequences tend to use the "female sign" codepoint after the activity?
The professions were conceived before they got the idea of making gendered versions of all emoji. They wanted to add these new emoji as soon as possible, but Unicode 9 had already been released and Unicode 10 wouldn’t come out until many months later, so they could not encode them as proper characters. Instead, they took already existing characters and simply declared certain sequences of them as emoji in their own right.
Meanwhile, other emoji like 🤽 already existed as atomic characters that did not specify gender, so to make them male and female they (ab)used ♀ and ♂ as makeshift gender modifiers. You have to keep in mind how these sequences look to someone who does not have an emoji font that supports these ligatures. ‘Female astronaut’ is a woman followed by a rocket (👩🚀) which vaguely makes sense, but using the same approach for ‘female water polo player’ would have resulted in a woman followed by another separate human being (👩🤽) which could have been very confusing, so it’s ‘🤽♀️’ instead.