Text Tools
Zalgo Text Generator - Creepy Glitchy Text
Generate creepy Zalgo text with Unicode combining characters stacked above and below each letter. Adjust the intensity for mild to maximum chaos.
What is Zalgo text?
Zalgo text creates a "glitching" or "corrupted" appearance by stacking Unicode combining diacritical marks above, below, and through characters. Combining diacritics (Unicode block U+0300–U+036F) are normally used for accents (like é = e + U+0301). Zalgo text stacks dozens of them on a single character.
The Zalgo meme
The "Zalgo" aesthetic originated in internet horror (creepypasta) culture around 2004, associated with distorted, eldritch imagery. The name comes from a meme created by Dave Kelly. Zalgo text became a way to make writing visually "corrupted" as a stylistic choice.
Technical note
Each visible character in Zalgo text may consist of 20–100+ Unicode code points. This can cause rendering issues in older software and inflates character counts - a single Zalgo "character" may consume many bytes in UTF-8.
Unicode combining character blocks
Zalgo text draws from three Unicode blocks of combining characters:
- Combining Diacritical Marks (U+0300–U+036F): 112 characters. The core block used for accents in normal text (grave, acute, circumflex, etc.). Zalgo text stacks these in bulk to create the vertical overflow effect.
- Combining Diacritical Marks Supplement (U+1DC0–U+1DFF): additional combining marks not covered by the base block. Used in phonetic and linguistic notation but also available for Zalgo stacking.
- Combining Half Marks (U+FE20–U+FE2F): ligature-related combining marks that span across character boundaries, contributing to the horizontal "bleeding" effect seen at higher Zalgo intensities.
Platform rendering differences
Zalgo text renders very differently across platforms - test before using it anywhere important:
- Discord: renders moderately well; clips combining marks at the line-height boundary rather than overflowing into adjacent lines.
- Twitter / X: clips vertical overflow at line height, so high-intensity Zalgo looks similar to medium-intensity on most displays.
- Terminal emulators: behaviour varies widely. Some terminals crash or freeze when rendering very long combining character sequences. Test in a safe environment before pasting into a terminal.
- PDF renderers: many PDF engines (including some versions of Adobe Reader) can corrupt text adjacent to high-density combining character sequences.
How to clean Zalgo text
To strip Zalgo combining characters from a string in JavaScript, use a regular expression targeting the three Unicode blocks:
// Remove all Zalgo combining diacritical marks
const cleaned = zalgoString.replace(/[\u0300-\u036f\u1dc0-\u1dff\ufe20-\ufe2f]/g, '');
This one-liner is safe to use in production for sanitising user-generated content. It will not affect normal accented characters like é or ñ because those are stored as precomposed Unicode characters (single code points), not as combining sequences.