How Glitch Text Works — The Unicode Technology Behind Zalgo & Cursed Text
Glitch text works by stacking Unicode combining diacritical marks — characters from the U+0300–U+036F block — onto ordinary letters. These marks were designed for accents in languages like French and Vietnamese, but glitch generators attach dozens per letter, causing the chaotic vertical stretching known as Zalgo or cursed text. The effect is pure Unicode — no fonts or special software required.
01 What Is Glitch Text?
You've seen it everywhere — text that appears corrupted, stretching vertically with strange marks cascading above and below each letter. It goes by many names: glitch text, Zalgo text, cursed text, corrupted text, creepy text. Despite how it looks, nothing is actually broken.
Glitch text is plain Unicode text. It can be copied, pasted, and sent through any system that supports Unicode — which is virtually every modern platform. The visual chaos comes from stacking combining diacritical marks on top of ordinary characters, far beyond how those marks were originally intended to be used.
In short: glitch text is standard Unicode text with an excessive number of combining characters attached to each letter. Every platform that supports Unicode — which includes all modern browsers, social media apps, and messaging services — will attempt to render these marks, producing the distorted visual effect.
This article explains the technology behind the effect, from Unicode fundamentals to the specific character ranges that glitch generators use. Along the way, you'll interact with live demos that let you build glitch text one combining mark at a time and inspect what's actually hidden inside any glitched string.
02 What Is Unicode and Why Does Glitch Text Depend on It?
Before Unicode, computers used competing encoding systems like ASCII, ISO 8859, and various national standards. ASCII only covered 128 characters — enough for English, but useless for the thousands of characters in Chinese, Arabic, Hindi, or even accented European languages. If you sent a French document from a Mac to a Windows PC, accented characters might display as garbage.
Unicode solved this by assigning a unique number — called a code point — to every character in every writing system. The letter "A" is U+0041. The Arabic letter "ع" is U+0639. An emoji like "🔥" is U+1F525. As of Unicode 17.0 (released September 2025), there are over 159,000 defined characters covering 172 scripts.
What are code points, characters, and glyphs?
A code point is the unique number assigned to a character (written as U+ followed by hexadecimal digits). A character is an abstract unit of text — the letter "é" is one character, even though it can be represented by one or two code points. A glyph is the visual shape your device draws on screen. The same code point can produce different glyphs depending on your font and rendering engine.
Precomposed: U+00E9 (one code point — LATIN SMALL LETTER E WITH ACUTE)
Decomposed: U+0065 + U+0301 (two code points — "e" + COMBINING ACUTE ACCENT)
That second form — a base character plus a combining mark — is exactly the mechanism that makes glitch text possible. Unicode was designed to support this decomposed approach, and every modern system is required to render combining marks correctly. Glitch generators simply take this legitimate feature and push it to an extreme.
03 What Are Combining Diacritical Marks?
Combining diacritical marks are Unicode characters in the U+0300–U+036F block that attach above, below, or through a preceding base character to modify its appearance. The block contains 112 characters including accents, tildes, dots, and hooks. Glitch text generators exploit these marks by stacking many of them onto a single letter, far exceeding their intended use.
The core mechanism behind all glitch text is the Combining Diacritical Marks block, defined in the Unicode Standard at code points U+0300 through U+036F.
These marks exist for legitimate linguistic reasons. Vietnamese uses up to two combining marks on a single vowel — one to modify the vowel shape and one for tone. Hebrew and Arabic use combining marks for vowel pointing. Musical notation, mathematical typography, and the International Phonetic Alphabet all depend on them. The Unicode specification defines precisely how these marks should be positioned, and MDN Web Docs covers how browsers handle Unicode text rendering. The W3C further defines how characters, code points, and glyphs relate in web standards.
How does stacking combining marks create glitch text?
A glitch text generator works by inserting multiple combining characters after each base character in your input text. Where a French word might use one combining acute accent, a Zalgo generator inserts 5, 10, or even 30+ combining marks per letter. The rendering engine tries its best to draw all of them, and the result is the chaotic vertical stretching you see.
Live Stacking Demo Interactive
Click "Add Mark" to attach one random combining character at a time. Watch the letter transform as marks accumulate.
Beyond the primary block, additional combining characters appear in extended Unicode ranges: Combining Diacritical Marks Extended (U+1AB0–U+1AFF), Combining Diacritical Marks Supplement (U+1DC0–U+1DFF), and Combining Half Marks (U+FE20–U+FE2F). Most glitch generators primarily use the U+0300–U+036F range because it has the widest rendering support across platforms.
04 What Are the Three Stacking Positions in Glitch Text?
Not all combining marks attach in the same position. The U+0300–U+036F block contains marks that render in three distinct zones relative to the base character: above, through the middle (overlaid), and below. The ratio of marks in each position is what gives different glitch styles their distinct visual character.
| Position | Range | Example Marks | Sample | Visual Effect |
|---|---|---|---|---|
| Above | U+0300–U+0315 | Grave, acute, circumflex, tilde, macron, overline, breve, dot, diaeresis, ring, double acute | à́̂̃̄ | Tall, heaven-reaching distortion — the classic "Zalgo rises" look |
| Middle | U+0334–U+0338 | Tilde overlay, short stroke overlay, long stroke overlay, short solidus, long solidus | a̴̵̶̷̸ | Strikethrough corruption — makes text look "slashed" or "deleted" |
| Below | U+0316–U+0333 | Grave below, acute below, cedilla, ogonek, vertical line below, bridge below, inverted breve below | a̖̗̘̙̚ | Dripping, descending distortion — the "melting" or "void" look |
How different ratios create different effects
A "classic Zalgo" effect uses heavy above stacking with moderate below, creating text that seems to erupt upward. A "dripping" or "void" style favors below marks, giving the impression that text is melting into darkness. A "static" or "interference" style uses mostly middle overlay marks for a corrupted-signal appearance. The best glitch generators let you control each zone independently.
Drip (melt): 15% above, 5% middle, 80% below
Static (noise): 30% above, 40% middle, 30% below
Subtle (whisper): 2–3 marks total, any position
05 Why Glitch Text Looks Different Everywhere
If you've ever sent glitch text to a friend and they said "it looks different on my screen," they weren't imagining things. The same Unicode string can render very differently depending on the operating system, browser, and font stack involved.
How do browsers and operating systems render glitch text?
When your device encounters text with combining marks, it passes through a shaping engine — software that decides where to place each mark. On macOS and iOS, this is Core Text. On Android and Chrome OS, it's HarfBuzz. On Windows, it's DirectWrite. Each engine makes different decisions about how to stack, overlap, and clip combining marks, especially when there are far more marks than the system was designed to handle.
Fonts also play a role. The system font (San Francisco on Apple, Roboto/Noto on Google, Segoe UI on Windows) includes different glyph metrics and anchor points for combining marks. Some fonts handle large stacks gracefully by compressing them; others let them overflow wildly. This is why the same Zalgo text might look dramatically tall on Chrome/Windows but more compact on Safari/iOS.
Rendering Comparison Live
The glitched text below is the same Unicode string for everyone. How it looks depends on your device.
Browser rendering engines add another layer of variation. Blink (Chrome, Edge, Opera), WebKit (Safari), and Gecko (Firefox) each implement the CSS and text layout specifications slightly differently. Gecko tends to render combining marks more tightly, while Blink allows more vertical overflow. These differences are especially visible at high glitch intensities.
06 Why Does Glitch Text Use So Many Characters?
Glitch text is deceptively heavy. A two-letter word like "Hi" appears to take up two characters of space, but once glitched, it might contain 50 or more Unicode code points. Each combining mark is a separate code point, even though it visually attaches to the preceding base character.
Glitched (medium): "H̸̛̗̣̩̱̽̈́͑̚i̴̡̧̛͍̫̲̻̽̿̈́̕" → 2 visible letters, 25+ code points
Glitched (extreme): 2 visible letters, 80+ code points
This matters for platform character limits. Twitter/X applies NFC normalization and then uses a weighted character-counting system — most characters count as one, but characters above U+1100 count as two. Since the combining marks used in glitch text cannot be precomposed by normalization, each mark still counts individually against the 280-character limit. A glitched 10-letter word might consume half your available characters. Discord, iMessage, and WhatsApp each handle this differently. Some platforms count grapheme clusters (a base character plus all its combining marks counts as one), which is more forgiving for glitch text.
Use the inspector below to paste any glitch text and see exactly what's inside it — every base character, every combining mark, and the total code point count.
Unicode Inspector Interactive
Paste any glitch text below to see every Unicode character hiding inside it.
07 Is Glitch Text Accessible to Screen Readers?
Glitch text creates a serious accessibility barrier. Screen readers — assistive technology used by people who are blind or have low vision — attempt to announce every combining character by its Unicode name. A single glitched letter "A" with 15 combining marks would be read as something like: "A, combining grave accent, combining acute accent, combining circumflex accent, combining tilde, combining macron…" and so on for every mark.
This makes glitch text effectively unusable for screen reader users. A short glitched sentence that takes a sighted person a second to read might take a screen reader thirty seconds to announce, producing nothing but a confusing list of diacritical mark names.
How can you use glitch text responsibly?
If you use glitch text in social media bios, usernames, or posts, consider providing a plain-text alternative. On platforms that support alt text or descriptions, include the unglitched version. Avoid using glitch text for critical information that everyone needs to read. And in any web content you control, use aria-label or aria-hidden attributes to provide screen readers with a clean alternative.
<span class="sr-only">Hello</span>
08 Where Did Zalgo Text Come From?
The name "Zalgo" traces back to the Something Awful forums. On July 27, 2004, a user named "Shmorky" (Dave Kelly) uploaded edited versions of syndicated newspaper comics — including Nancy and Archie — to his personal website, incorporating the word "Zalgo" and distorting the characters into something ominous. The entity Zalgo became a creepypasta archetype — a Lovecraftian force of digital corruption associated with the phrase "HE COMES."
Although Zalgo was well-known on Something Awful, search interest peaked around March 2009 when the meme spread to 4chan. Web developers realized they could replicate the visual distortion using Unicode combining characters rather than image editing. Early Zalgo text generators appeared on sites like eeemo.net (created by tchouky), making the effect accessible to anyone who could type into a text box. The phrase "Z̤͂a̢ḷ̠g̡̟o̗̟" became synonymous with digitally corrupted text.
Over the following decade, glitch text evolved beyond its horror-meme origins into a broader aesthetic category. The "glitchcore" and "vaporwave" visual movements adopted corrupted text as a design element. Social media users discovered that glitch text made usernames and bios stand out in crowded feeds. Today, glitch text is used across gaming communities, digital art, music promotion, social media branding, and anywhere a sense of digital distortion or edge is desired.
09 Frequently Asked Questions
Is glitch text the same as a font?
No. Glitch text uses Unicode combining characters that are part of standard text encoding — it works in any text field without installing anything. A font is a separate file (OTF/TTF) that changes how characters are visually rendered and only works in applications that support custom fonts, like design software or word processors. When you paste glitch text, you're pasting actual Unicode characters, not changing the font.
What Unicode block do combining marks come from?
The primary block is Combining Diacritical Marks at U+0300–U+036F, which contains 112 characters. Extended blocks include Combining Diacritical Marks Extended (U+1AB0–U+1AFF), Combining Diacritical Marks Supplement (U+1DC0–U+1DFF), and Combining Half Marks (U+FE20–U+FE2F). Most glitch generators use the primary block for maximum cross-platform compatibility.
Can I create glitch text programmatically?
Yes. In JavaScript, you can insert combining characters using String.fromCodePoint(). For example, String.fromCodePoint(0x0300) produces a combining grave accent. To glitch a string, iterate through each character and append random code points from the U+0300–U+036F range. Control intensity by varying how many marks you add per character.
Why does glitch text look different on my phone vs. my computer?
Different operating systems use different text shaping engines and default fonts. iOS uses Core Text with San Francisco, Android uses HarfBuzz with Roboto/Noto, and Windows uses DirectWrite with Segoe UI. Each engine handles the stacking and overflow of combining marks differently, producing varying visual results from the same Unicode string.
Will glitch text break character limits on social media?
It depends on how the platform counts characters. Twitter/X applies NFC normalization and uses a weighted counting system, but since the combining marks in glitch text cannot be precomposed by normalization, each mark still counts individually against the 280-character limit. Other platforms count grapheme clusters (a base character plus all its combining marks counts as one), which is more forgiving. Start with lower intensity if you're working within a limit.
Is glitch text accessible to screen readers?
No. Screen readers announce each combining character by its Unicode name, turning a short glitched word into a long stream of diacritical mark names. This makes the text effectively unreadable for users relying on assistive technology. If you use glitch text in web content, wrap it in aria-hidden="true" and provide a plain-text alternative for screen readers.
Is Zalgo text safe to use?
Yes. Zalgo text is standard Unicode — it contains no malware, executable code, or hidden data. It cannot harm your device or account. However, some platforms may flag heavily glitched text as spam, and extremely long strings with hundreds of combining marks per character can cause performance slowdowns in text input fields.
Does glitch text work on Discord, Instagram, and TikTok?
Glitch text works on most platforms that support Unicode, including Discord, Instagram bios, TikTok usernames, Twitter/X, Facebook, and WhatsApp. Some platforms may strip or limit combining marks in certain fields. Discord and Twitter/X offer the most reliable rendering. Instagram may compress combining marks in captions but generally displays them in bios.
How do I remove glitch text or clean up Zalgo text?
To remove glitch text, paste it into a Unicode text normalizer or run a regular expression that strips combining characters in the U+0300–U+036F range. In JavaScript, use text.normalize("NFD").replace(/[\u0300-\u036f]/g, ""). You can also paste glitched text into a plain-text editor, which sometimes strips non-standard marks, though results vary by editor.
What is the difference between Zalgo text and glitch text?
Zalgo text is a specific style of glitch text named after an internet creepypasta character. It typically features heavy vertical distortion with combining marks stacked above and below each letter. Glitch text is the broader category that includes Zalgo, strikethrough effects, vaporwave styling, and other Unicode-based text transformations. All Zalgo text is glitch text, but not all glitch text is Zalgo.
Try It Yourself
Now that you know how glitch text works under the hood, put that knowledge to use with our free generators.