Soft Hyphen and Zero Width Space can both sit inside text without showing an obvious mark. They can also both affect where a line is allowed to break.
That’s where the similarity ends.
U+00AD SOFT HYPHEN, usually shortened to SHY, is an invisible format character that marks an optional break inside a word. U+200B ZERO WIDTH SPACE, or ZWSP, provides an invisible word-separation or line-break opportunity without carrying the same hyphenation meaning.
Soft Hyphen vs Zero Width Space at a Glance
| Property | Soft Hyphen | Zero Width Space |
|---|---|---|
| Code point | U+00AD | U+200B |
| Unicode name | SOFT HYPHEN | ZERO WIDTH SPACE |
| Abbreviation | SHY | ZWSP |
| Normal display | Invisible, unless its break is taken and the language/script renders something there | Invisible |
| Main role | Optional intraword break / hyphenation point | Invisible word separation and line-break control |
Both fit within the broader subject of invisible and special space characters, but they tell a layout system different things.
What Is a Soft Hyphen?
Despite its name, SHY isn’t just a visible hyphen that happens to be hidden.
Unicode defines U+00AD as an invisible format character used to mark an optional break inside a word. If the word fits on the line, SHY normally has no visible effect.
If the word has to break, that position becomes a preferred place to do it.
What Happens When a SHY Break Is Used?
A common result is a visible hyphen at the end of the first line, but Unicode is careful not to define that as the only possible rendering.
The result can depend on the language, script, surrounding letters, and hyphenation rules. Some writing systems may alter the surrounding text, use a different mark, or show no hyphen glyph at all.
So the most accurate mental model is: SHY marks an optional intraword break. It doesn’t encode a permanently visible hyphen.
What Is Zero Width Space?
ZWSP is U+200B ZERO WIDTH SPACE. It normally has no visible width and can provide an additional place where word separation or line breaking is allowed.
Unlike SHY, it doesn’t specifically say, “this word may be hyphenated here.”
If you want the deeper U+200B explanation, see Zero Width Space U+200B: What It Is, Why It’s Invisible, and How to Find It.
The Key Difference: Intraword Hyphenation vs Invisible Break Opportunity
The simplest distinction is:
SHY: an optional break inside a word, with language-appropriate rendering if that break is taken.
ZWSP: an invisible word-separation or break opportunity without SHY’s intraword hyphenation semantics.
That difference matters most when the text actually wraps.
Does Soft Hyphen Always Show a Hyphen?
No.
If no line break happens at the SHY position, the character normally remains invisible. And if a break does happen, the visible result can vary by language and script.
That’s why “a hidden hyphen that appears at the end of a line” is a handy shortcut, but it isn’t the full Unicode story.
Does Zero Width Space Show a Hyphen?
ZWSP itself doesn’t ask the renderer to add a hyphen. Its job is to make an invisible break point available.
If you need discretionary word hyphenation, SHY carries different information from simply inserting U+200B.
Why Can SHY Be Hard to Find?
If a word never breaks at U+00AD, there may be no visual clue that the character is there.
You might only notice it when:
- the word wraps differently in a narrower layout;
- an exact string comparison fails;
- a Unicode-aware count shows an extra code point;
- the text behaves differently after copy and paste;
- or a hyphen suddenly appears when the line reflows.
Why Can SHY Appear in Copied Text?
Some publishing workflows insert U+00AD as discretionary hyphenation points. If the copy operation preserves those code points, SHY can travel with the word even though it was invisible in the source layout.
That’s one example of the broader issue covered in why copied text can contain invisible characters.
Can SHY Affect Search and String Matching?
Yes, when the application compares the encoded sequences exactly.
For example, extraordinary and a sequence represented as extra[U+00AD]ordinary can look the same when SHY isn’t rendered, but they don’t contain the same code points.
Whether a particular search system treats them as equivalent depends on that system’s matching rules. Why Invisible Unicode Characters Can Break Search and String Matching looks at this problem across several kinds of invisible characters.
SHY Is Not a Normal Hyphen
U+00AD SOFT HYPHEN is also different from visible characters such as U+2010 HYPHEN and U+002D HYPHEN-MINUS.
A visible hyphen is part of what you normally see in the text. SHY is a formatting control that marks a possible intraword break.
If the visible horizontal marks are what you’re comparing, see Hyphen vs En Dash vs Em Dash vs Minus Sign.
How Can You Tell Whether You Have SHY or ZWSP?
Don’t guess from appearance. Inspect the code point:
- U+00AD — SOFT HYPHEN
- U+200B — ZERO WIDTH SPACE
An editor that reveals formatting characters or a Unicode-aware inspector is much more reliable than looking for a tiny gap or hidden dash.
Should You Remove SHY or ZWSP?
Only after you know why it’s there.
In a machine-oriented identifier, discretionary hyphenation or an invisible break opportunity may be unwanted. In prose or publishing text, either character may have been inserted deliberately.
A safer workflow is:
- identify the exact code point;
- understand what it controls;
- decide what the destination text needs;
- then remove or replace it if appropriate.
How to Find and Remove Invisible Unicode Characters Without Breaking Text walks through that process in more detail.
The Main Difference
Soft Hyphen and Zero Width Space can both be invisible and both can affect line breaking, but they aren’t interchangeable.
U+00AD SHY marks an optional intraword break. U+200B ZWSP provides invisible word separation or a line-break opportunity without the same hyphenation semantics.
If hidden text starts behaving differently when a line wraps, checking which of those two code points is present usually explains a lot.