Zalgo Text Generator
Stack combining marks on any text, from a faint shimmer to a solid wall of glitch, then copy it. Marks are added one character at a time and the tool works on grapheme clusters, so an emoji, a flag, a keycap or an accented letter is decorated whole instead of being pulled apart the way a per-code-unit generator pulls it apart. Spaces and line breaks are left clean, up, middle and down each have their own switch, and un-zalgo takes the marks back off to give you the plain text again.
Cursed text appears here.
Nothing to curse yet.
the classic look: 3 to 6 marks on every character except spaces and line breaks.
Common questions
- What is zalgo text?
- It is ordinary text with Unicode combining marks piled onto each character. Combining marks are the accents and diacritics that normally sit on a letter, one or two at a time, to make things like e-acute or a-umlaut. Nothing in Unicode says how many you may attach, so stacking dozens of them makes a character that grows tall tendrils above and below and bleeds into the lines around it. The letters underneath are unchanged, which is why the text can still be copied, pasted and, with the un-zalgo button, cleaned back up.
- Why does zalgo text look different on my phone?
- Because how far the marks stack is decided by the font and the renderer, not by the text. Desktop browsers usually draw every mark, so the glitch runs several lines high. iOS and Android often stop stacking after a few marks and draw the rest on top of each other, so the same string looks shorter and denser. Some apps clip anything that overflows the line, and a few show boxes for marks their font has no glyph for. The marks are still all there in the text either way: only the drawing changes.
- How do I remove zalgo text and get the original back?
- Paste the cursed text into the box on the left and press Un-zalgo. It takes off every combining mark, including marks from other generators, and puts the plain text back in the box. Two things it keeps on purpose: variation selectors and the keycap mark, because they are how emoji like a red heart or a keycap digit are spelled and removing them would change the emoji. One thing to know: if the text already contained a combining mark of its own, such as an accent typed as a letter plus a separate mark, that mark is removed too. The tool counts those and says so before you press the button.
- Is it safe to post zalgo text anywhere?
- It is ordinary text, so nothing about it can harm a site, but plenty of places will not take it as-is. Every mark counts as a character against a length limit, so a short sentence at maximum intensity can run to thousands of characters. Some platforms strip combining marks on the way in, some cap how many they will stack, some reject the post, and moderators on many servers treat wall-of-glitch text as spam. The tool shows the exact output length before you copy, counted in code points, which is what a plain character count gives; a platform that counts UTF-16 units instead will read every emoji as two on top of that. Try it in a draft where you plan to post it, and pick a lighter intensity if it comes back mangled.
- Why does it decorate emoji correctly when other generators mangle them?
- Because it adds marks between characters, not between code units. A family emoji is four people joined by zero-width joiners, a flag is two regional indicators, and a keycap is a digit plus two more code points. A generator that walks the string one code unit at a time drops marks into the middle of those sequences and the emoji falls apart into its pieces. This one splits the text into grapheme clusters, which is what Unicode calls the thing a reader sees as one character, and appends the marks to the end of each cluster. Your browser's own segmenter does the work where it has one, and a matching implementation of the same Unicode rules does it where it does not.
- Why do I get the same result every time, and how do I get a different one?
- The marks are chosen by a seeded generator, so the same text at the same intensity gives the same output on every machine and on every reload. That means you can come back and reproduce a string you liked rather than losing it. Press Regenerate for a fresh arrangement of the same intensity, as many times as you want.
- What do mild, normal, heavy and maximum actually mean?
- They set how many marks land on each character: mild adds 1 to 2, normal 3 to 6, heavy 8 to 15, and maximum 20 to 30. The count is per character, not per direction, so switching off up or down changes where the marks go rather than how many there are. Spaces, tabs and line breaks never get marks at any intensity, which keeps words apart and stops the text collapsing into one block.
Marks are added per character, so emoji and accented letters stay whole. Un-zalgo removes every combining mark to give back the original text, keeping only the variation selectors and keycap marks that emoji are spelled with, so a combining mark the text already carried, like a decomposed accent, goes with them. How wild it looks depends on the font and the platform; some strip the marks entirely.