Emoji → gone
A family emoji is seven code points glued together and a flag is two. Tools that strip one code point at a time leave the leftovers behind — stray letters where a flag was, or a lone figure where a family used to be. This one removes the whole cluster.
- Handles
- ZWJ · skin tone · flags
- Action
- remove · replace
- Also
- lists what it took
Your text
Cleaned text
What was removed
Why other tools leave debris
A flag is two letters
🇮🇳 is not one character — it is Regional Indicator I followed by Regional Indicator N. Remove one and the other renders as a bare letter. Both halves have to go together, which means matching the pair, not the code point.
A family is seven code points
👨👩👧👦 is four people joined by three zero-width joiners. Strip naively and you are left with orphaned figures, or invisible joiners with nothing to join. The whole sequence is one unit.
Skin tone is a separate character
👍🏽 is a thumbs-up plus a Fitzpatrick modifier. Miss the modifier and it survives on its own as a coloured square. It is removed as part of the cluster it belongs to.
Variation selectors are invisible
U+FE0F is what turns a plain glyph into its emoji presentation. It has no width, so a leftover one is invisible — but it is still a character in your string, and it will still count against a length limit.
Symbols are not always emoji
✔ and → are pictographic but frequently intentional in ordinary text. They are a separate switch rather than being swept up with the faces, because removing them by default breaks more text than it fixes.
The gap left behind
Removing an emoji mid-sentence usually leaves two spaces. Tidy spacing collapses those and trims the ends of each line, which is almost always what you wanted — but it is a switch, because in code or CSV that whitespace can be significant.