Emoji.length == 2
The thing that frustrates me the most about Unicode emoji is the astounding number of combining characters. For combining characters in written languages, you can do an NFC normalization and, with moderate success, get a 1 codepoint = 1 grapheme mapping, but "Emoji 2.0" introduced some ridiculous emoji compositions with the ZWJ character.<p>To use the author's example:<p>‍woman - 1 codepoint<p>black woman - 2 codepoints, woman + dark Fitzpatrick modifier<p>‍️‍‍woman kissing woman - 7 codepoints, woman + ZWJ + heart + ZWJ + kissy lips + ZWJ + woman<p>It's like composing Mayan pictographs, except you have to include an invisible character in between each component.<p>Here's another fun one: country flags. Unicode has special characters 🇱 🇮 🇰 🇪  🇹 🇭 🇮 🇸 that you can combine into country codes to create a flag. 🇰+🇷 = 🇰🇷<p>edit: looks like HN strips emoji? Changed the emoji in the example into English words. They are all supposed to render as a single "character".