Free generator, copy and paste
Unicode strikethrough U+0336 and friends
Strikethrough you can paste anywhere is built from combining marks. Here are the code points, how they render, and how to generate them in code.
- strikethrough
- short strike
- wavy strike
- slash
- long slash
- double slash
- strike + underline
- strike + overline
- underline
- double underline
- overline
- dotted
- wave
- x below
- redacted
Updated · strikethroughtext.online
The overlay marks
Unicode’s Combining Diacritical Marks block includes five marks that draw across the letter before them:
| Code point | Name | Example |
|---|---|---|
| U+0334 | Combining tilde overlay | a̴b̴c̴ |
| U+0335 | Combining short stroke overlay | a̵b̵c̵ |
| U+0336 | Combining long stroke overlay | a̶b̶c̶ |
| U+0337 | Combining short solidus overlay | a̷b̷c̷ |
| U+0338 | Combining long solidus overlay | a̸b̸c̸ |
U+0336 is the one generators mean by “strikethrough”. It’s wide enough that the strokes on neighbouring letters touch and read as one line. U+0335 is shorter, which leaves small gaps but sits more neatly on narrow letters. U+0338 is the mark used to build symbols like ≠, so it’s tall and steep.
Other marks used on this site sit under or over the letter rather than through it: U+0332 low line, U+0333 double low line, U+0305 overline, U+0324 diaeresis below and U+0330 tilde below.
How combining works
A combining mark has no width of its own. It attaches to whatever character comes before it, which is how é can be stored as e followed by U+0301. Strikethrough uses the same mechanism:
h U+0336 e U+0336 l U+0336 l U+0336 o U+0336
renders as h̶e̶l̶l̶o̶. The letters are still there, which is why the text stays copyable, but search sees a different string from plain hello.
Generating it in code
JavaScript, splitting into graphemes so emoji and accented letters stay whole:
const strike = (text) =>
Array.from(new Intl.Segmenter().segment(text), ({ segment }) =>
/\s/.test(segment) ? segment : segment + '̶',
).join('');
Python:
def strike(text: str) -> str:
return ''.join(c if c.isspace() else c + '̶' for c in text)
The Python version works per code point, which is fine for plain letters. For text with emoji or decomposed accents, use the grapheme package or the regex module’s \X to split it properly.
In HTML you can write the mark as an entity, ̶, but for a web page CSS is the better tool: text-decoration: line-through uses the page’s font and stays searchable.
Removing it
To strip the marks, delete every character in the range U+0334 to U+0338 (plus any others you added):
const unstrike = (text) => text.replace(/[̴-̸]/g, '');
The remove formatting tool does this, and also maps superscript and small-caps letters back to plain ones.
Rendering differences
How the line looks is up to the font. Most system fonts on iOS, macOS, Windows and Android draw U+0336 as a continuous line at mid-height. Some position it lower, close to an underline, and some older Android fonts leave gaps between letters. The underlying text is identical in every case, so what you copy is what your reader gets; only the drawing changes.
Questions people ask
What is the Unicode character for strikethrough?
U+0336 COMBINING LONG STROKE OVERLAY. Put it after a character and it draws a horizontal line through that character. Repeating it after every character joins the lines into a strikethrough.
Is there a precomposed struck-through letter?
Only for a few letters used in real languages, like đ, ħ, ł and ƀ. They have a stroke built in but aren’t the same as strikethrough, and there isn’t a full struck alphabet. Combining marks are the only way to strike any letter.
Why do some apps show boxes instead of a line?
Very old fonts or systems don’t support combining marks and show a placeholder box. On modern phones and computers this is rare. If it happens, the reader’s device or app is the limit, not the text.
Does U+0336 count toward character limits?
Usually yes. Most apps count code points, so each struck letter costs two. Bluesky counts graphemes, a letter plus its marks, so struck text costs no extra there.