Skip to content
Browse tools

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
Step 1

Your text

empty
Step 2

Cleaned text

Remove
Replace with
empty
Nothing to clean yet Paste some text on the left.

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.