Word Joiner U+2060
U+20608288⁠\2060\u2060%E2%81%A0E2 81 A0Format (Cf)General PunctuationThe word joiner (U+2060) is a zero-width invisible character that prevents line breaks at its position. It is the opposite of the : where ZWSP says "you can break the line here," word joiner says "you must NOT break the line here."
Think of it as a with no width. It keeps the characters on either side together on the same line without adding any visible gap between them.
Word joiner was introduced in Unicode 3.2 as the proper replacement for the old practice of using the byte order mark (U+FEFF) as a zero-width no-break space. That dual-purpose use of BOM caused confusion, so Unicode split the roles: BOM for file encoding, word joiner for inline no-break behavior.
Common Uses
- Preventing line breaks between a number and its unit. Place word joiner between "100" and "%" to ensure "100%" never breaks across lines:
100[WJ]%. Unlike non-breaking space, word joiner adds no visible gap. - Keeping code snippets together. In documentation that includes inline code, word joiner prevents function names or expressions from breaking mid-word.
- Keeping compound terms intact. Technical terms, product names, or abbreviations that should never be split across lines.
- Preventing orphaned punctuation. Keep a punctuation mark with the word it belongs to, preventing a colon, semicolon, or other mark from appearing at the start of a new line.
- Controlling text wrapping in responsive layouts. When CSS
white-space: nowrapis too broad (it prevents all breaks in the element), word joiner gives you per-character control.
How to Type
Word Joiner vs Non-Breaking Space
This is the most common question about word joiner: when to use it instead of non-breaking space.
Example
To keep "Dr." and "Smith" together:
Dr. Smithkeeps them together WITH a space between them. This is what you usually want.Dr.[WJ]Smithkeeps them together WITHOUT a space. This would display as "Dr.Smith" which is usually wrong.
To keep "100" and "%" together:
100[WJ]%keeps them together without adding a gap. This is correct because there should be no space between a number and the percent sign.100 %keeps them together but adds a visible space, displaying as "100 %", which may or may not be what you want depending on your style guide.
The Zero-Width Character Family
Word joiner sits in a family of zero-width characters that control line-breaking and character-joining behavior:
Word joiner and zero-width space are functional opposites. ZWNJ and ZWJ are functional opposites. Together, these four characters give precise control over how text wraps and how characters interact.
Technical Details
- Unicode category: Cf (Format).
- Width: Zero. No visible glyph.
- Line breaking: Prevents line breaks (class WJ in the Unicode Line Breaking Algorithm).
- Word breaking: Does not affect word boundaries.
- Bidirectional class: BN (Boundary Neutral). Does not affect text direction.
- History: Introduced in Unicode 3.2 (2002) as the replacement for using U+FEFF as an inline zero-width no-break space.
In code:
When to Use CSS Instead
For most web layout situations, CSS solutions are simpler and more maintainable than inserting word joiner characters:
Use word joiner when:
- You need no-break behavior in plain text (not HTML).
- You need per-character control that CSS cannot provide.
- The text will be consumed by systems that do not support CSS (emails, PDFs, plain text files).
- You are working with internationalized text where CSS
white-spacedoes not give enough control.
Security Considerations
Word joiner is generally low-risk from a security perspective. It does not affect text direction, does not create visual confusion, and does not enable the attacks associated with bidirectional override characters. Its main security-adjacent concern is:
- String comparison. Two strings that look identical may differ by word joiner characters, causing matching failures. This is generally an annoyance rather than a security vulnerability.
- Length calculation. Word joiner adds to the code point count of a string without adding visible length, which could theoretically be used to bypass character limits in some systems.
Quick Reference
When you need to control line breaking in text, here is the right character for each situation:
Word joiner fills the specific niche of "prevent line break, zero width." If that is what you need, it is the correct and only Unicode character for the job.
Frequently Asked Questions
What is the difference between word joiner and non-breaking space?
What is the difference between word joiner and zero-width space?
Why was word joiner created?
When should I use word joiner?
Related Characters
Need to detect or remove Word Joiner characters in your text?
Open Invisible Character Viewer