gizmobench
BrowseDaily

Zalgo Text Generator

Generate cursed or glitchy Unicode text with mild, normal, heavy or maximum combining marks, then copy the result. Up, middle and down control where marks appear; emoji and accented graphemes are decorated whole. Switch to Remove marks to clean pasted Zalgo into a separate plain-text result without replacing your source.

ZalgoNormal

Cursed text appears here.

No text yet.

Marks land per characterEmoji and accents stay wholeCombining marks can be removedNothing leaves your browser
Action
Intensity
Marks go
Marks added
0
Output length
0 code points

the classic look: 3 to 6 marks on every character except spaces and line breaks.

Why the marks land where they do. A generator that walks a string one code unit at a time drops marks between the halves of an emoji, between a flag's two letters, and between a letter and its accent, and the text falls apart in exactly the places people paste it. This one splits your text into grapheme clusters, the unit a reader calls a character, and puts the marks on the end of each one. Character boundaries came from your browser's own Intl.Segmenter.
Accuracy. Marks are added per character, so emoji and accented letters stay whole. Un-zalgo removes combining marks to produce plain 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.

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 or glitch text?
Paste the marked text into Text and choose Remove marks or press Un-zalgo. The right pane shows the cleaned result for copying and the original stays in Text. All Unicode combining marks are removed except variation selectors and keycap marks. Existing decomposed accents and vowel marks, including Indic marks, are removed too; this is cleanup, not guaranteed recovery of the original spelling.
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.
Can I use this glitch text in Discord, Roblox, WhatsApp or YouTube?
You can copy the prepared text and try it in your destination. Font rendering, filters and character limits decide what survives; there is no direct integration or guaranteed username/chat acceptance. Every added mark increases the code-point count shown by the tool. Try a lighter intensity if the destination clips or rejects the result.
Does this create animated glitch text, images or a font file?
No. The result is Unicode text to copy, not an animation, GIF, PNG, video or downloadable font. It does not reproduce Minecraft’s animated obfuscated-text formatting or decode other styled alphabets.

Marks are added per character, so emoji and accented letters stay whole. Un-zalgo removes combining marks to produce plain 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.