How do you remove zalgo text?
Published November 4, 2026
Strip the Unicode combining marks. Zalgo text is your original letters with marks added after each one, so removing every mark gives back the plain text with the same spelling and spacing.
Without code, paste the text into a tool that removes combining marks or diacritics. To Unicode, zalgo marks are the same kind of character as the accent on é. Reading zalgo text works the same way: the letters underneath are never changed, so removing the marks is how you read a heavy one.
In code, split accented letters apart with NFD normalization, then drop every character in the Unicode "Mark" category. In JavaScript: text.normalize('NFD').replace(/\p{M}/gu, ''). In Python: ''.join(c for c in unicodedata.normalize('NFD', text) if not unicodedata.category(c).startswith('M')). Check the category rather than unicodedata.combining(): some zalgo marks, such as U+0489 (combining cyrillic millions sign, which this site's generator uses), have a combining class of 0, so combining() leaves them in.
The catch: this removes real accents too, so "café" comes back as "cafe" and accented names lose their accents. If the text mixes zalgo with a language that uses accents, expect to fix those words by hand. More on what the marks are in how zalgo text works.
Related tools