About this tool
Remove emoji, decorative symbols and invisible zero-width characters that quietly consume prompt tokens.
Prompt Emoji Stripper removes emoji, decorative symbols and invisible zero-width characters from a prompt, and reports the exact UTF-8 byte saving. Emoji are identified by the Unicode Extended_Pictographic property defined in UTS #51 and counted as whole grapheme clusters, so a country flag, a skin-tone modifier or a zero-width-joiner family sequence each count as one symbol rather than as their component code points. The invisible characters it catches — zero-width space, zero-width joiner, word joiner, soft hyphen and byte order mark — render as nothing but still consume tokens.
Open Prompt Emoji Stripper on AltFTool — it loads instantly in your browser.
Paste or type the text you're working with.
Choose how it should be transformed or analyzed.
Copy the finished text into your document or post.
A flag or skin-tone emoji is one symbol, not two or three code points, so the counts match what you actually see.
Zero-width and formatting characters are the ones you cannot spot by eye, and they are the most likely to have arrived by accident.
Byte savings are exact and token savings are given as a range, because no single token count is correct across models.
Yes, substantially more per visible character. Most emoji sit outside the Basic Multilingual Plane and take four UTF-8 bytes each, and in common byte-pair vocabularies a single emoji typically costs between one and four tokens, against roughly four characters per token for plain English.
They are code points that occupy no visual space: zero-width space U+200B, zero-width non-joiner U+200C, zero-width joiner U+200D, word joiner U+2060, soft hyphen U+00AD and byte order mark U+FEFF. Text copied from web pages and rich editors often carries them, and they still cost tokens, break exact string matching, and can corrupt a regex or a diff without any visible clue.
Usually yes for structural ornament — decorative bullets and rocket icons add cost without adding instruction. Keep them where they carry meaning, such as a status marker the model is asked to reproduce. Setting a replacement string rather than deleting preserves the signal at a fraction of the byte cost.
U+FE0F and U+FE0E are invisible code points that tell a renderer whether to draw the preceding character as a colourful emoji or as plain text. Stripping U+FE0F keeps the base symbol, such as a check mark, but drops the emoji styling and its extra bytes.