Word Joiner U+2060
Copy the word joiner (U+2060), an invisible character that stops a line break without adding space. It replaces U+FEFF as the zero-width no-break.
Remove the Word Joiner from your text
Paste your text below. It stays in your browser; nothing is uploaded.
Other hidden characters too? Scan for all of them
- Codepoint
U+2060- Decimal
8288- HTML
⁠- CSS
\2060- JS
\u2060- URL
%E2%81%A0- UTF-8
E2 81 A0- Category
Format (Cf)- Block
General Punctuation
The word joiner (U+2060) is a zero-width invisible character that prevents a line break at its position. It is the opposite of the zero-width space: ZWSP says "you can break the line here," word joiner says "you must NOT break the line here."
Think of it as a non-breaking space with no width. Unicode 3.2 added it to take over the inline no-break job from the byte order mark (U+FEFF), which now only marks file encoding.
Common Uses
- Number and unit.
100[WJ]%keeps "100%" on one line with no gap. - Inline code. Function names and expressions in documentation won't break mid-word.
- Compound terms. Technical terms, product names and abbreviations stay whole.
- Orphaned punctuation. A colon, semicolon or other mark won't start a new line.
- Responsive layouts. CSS
white-space: nowrapblocks every break in an element. Word joiner works per character.
How to Type
| Platform | Method |
|---|---|
| Windows | No keyboard shortcut. Copy from this page, or in Microsoft Word type 2060 then press Alt+X. |
| macOS | No keyboard shortcut. Copy from this page. |
| Linux | Ctrl+Shift+U, type 2060, press Enter. |
| HTML | Type ⁠ or ⁠. |
| JavaScript | Use \u2060 in strings. |
| CSS | Use content: '\2060'; but rarely needed in CSS. |
Word Joiner vs Non-Breaking Space
| Feature | Word Joiner (U+2060) | Non-Breaking Space (U+00A0) |
|---|---|---|
| Prevents line break? | Yes | Yes |
| Has visible width? | No (zero width) | Yes (same as regular space) |
| Adds space between words? | No | Yes |
| HTML entity | ⁠ | |
| Use when | You want no-break with no gap | You want no-break with a visible space |
Example
Dr. Smithdisplays "Dr. Smith" on one line. Usually what you want.Dr.[WJ]Smithdisplays "Dr.Smith". Usually wrong.100[WJ]%displays "100%" with no gap. Correct.100 %displays "100 %". Depends on your style guide.
The Zero-Width Character Family
| Character | Line break? | Joining? | Purpose |
|---|---|---|---|
| Zero-Width Space (U+200B) | Allows break | None | "Break here if needed" |
| Word Joiner (U+2060) | Prevents break | None | "Never break here" |
| Zero-Width Non-Joiner (U+200C) | No effect | Prevents joining | "Don't connect these letters" |
| Zero-Width Joiner (U+200D) | No effect | Forces joining | "Connect these characters" |
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) to replace U+FEFF as an inline zero-width no-break space.
In code:
When to Use CSS Instead
On the web, CSS is usually easier to maintain:
Use word joiner for plain text, for per-character control CSS can't give, for output without CSS (emails, PDFs, plain text files), and for internationalized text where CSS white-space isn't precise enough.
Security Considerations
Word joiner is low-risk. It does not affect text direction or enable bidirectional override attacks. Two minor concerns:
- String comparison. Strings that look identical may differ by a word joiner and fail to match.
- Length calculation. It adds to the code point count without visible length, which could in theory bypass character limits.
Quick Reference
| I want to... | Use this | Character |
|---|---|---|
| Allow a line break with no visible mark | Zero-Width Space | U+200B |
| Allow a line break with a visible hyphen | Soft Hyphen | U+00AD |
| Prevent a line break with a visible space | Non-Breaking Space | U+00A0 |
| Prevent a line break with no visible space | Word Joiner | U+2060 |
Frequently Asked Questions
What is the difference between word joiner and non-breaking space?
Both prevent line breaks. Non-breaking space (U+00A0) also adds a visible space between words. Word joiner (U+2060) adds no space at all. Use word joiner when you need no-break behavior with no gap.
What is the difference between word joiner and zero-width space?
They are opposites. Zero-width space (U+200B) allows a line to break at its position. Word joiner (U+2060) prevents a break there. Both are invisible and zero-width, but they have opposite effects on text wrapping.
Why was word joiner created?
The byte order mark (U+FEFF) once had two jobs: marking encoding at the start of files and acting as an inline zero-width no-break space. Unicode 3.2 split these roles and created word joiner (U+2060) for the inline no-break job.
When should I use word joiner?
Use word joiner to keep two elements on the same line without adding visible space. Examples: between a number and its unit symbol, between parts of a code snippet, or anywhere a line break would confuse the reader.
Related Characters
U+200BNon-Breaking SpaceU+00A0Byte Order MarkU+FEFFZero-Width JoinerU+200DZero-Width Non-JoinerU+200CSoft HyphenU+00ADNeed to find every hidden character in your text, not just the Word Joiner?
Open the viewer