Spaces and invisible characters
Spaces of different widths, breaks, joiners, and direction marks with codes and behavior notes.
Spaces and formatting controls
The label makes each invisible character selectable. Hover over it to reveal the copy indicator.
| Marker | Name | Code | In text | Behavior and use |
|---|---|---|---|---|
| Spaces of different widthsFrom the regular word space to fixed typographic spacing characters. | ||||
| Space | | two words | Regular width; allows an indirect line break.Separating words in ordinary text. | |
| No-break space | | 10 km | Usually matches a regular space; prohibits a break on either side.Numbers with units, initials with names, and short phrases that must stay together. | |
| Narrow no-break space | | 10 000 | Close to a thin space in width; line breaking is prohibited.Digit grouping and compact phrases that must not wrap. | |
| En space | | A B | Nominally one half of an em.Fixed typographic spacing; rarely needed in ordinary prose. | |
| Em space | | A B | Nominally equal to the font size, or one em.A wide fixed gap in typographic composition. | |
| Figure space | | 1 000 | Matches a tabular digit width and does not allow a line break.Aligning numbers in columns that use tabular digits. | |
| Punctuation space | | A B | Usually matches the width of narrow punctuation such as a period.Occasional alignment of text or tables around punctuation. | |
| Thin space | | 5 × 7 | Typically about one fifth or one sixth of an em.A small optical gap between characters. | |
| Hair space | | A B | Traditionally the thinnest space, about one tenth to one sixteenth of an em.Very fine manual spacing in professional typography. | |
| Medium mathematical space | | x + y | A fixed width of four eighteenths of an em.Spacing mathematical expressions and operators. | |
| Breaks and separatorsCharacters that allow, prevent, or explicitly create a break. | ||||
| Character tabulation Formatting control | | A B | Advances to the next tab stop; its width depends on the editor.Code indentation and field separation in TSV data. | |
| Line feed Formatting control | | line line | Creates a mandatory line break.Line endings in Unix, Linux, and many modern text formats. | |
| Soft hyphen Formatting control | | typography | Invisible without wrapping; displays a hyphen when the word breaks.A manual hint for an allowed hyphenation point in a long word. | |
| Zero-width space Formatting control | | longword | Has no width but creates a line-break opportunity.A hidden break point in long strings that contain no regular spaces. | |
| Word joiner Formatting control | | §5 | Has no width and prohibits line breaks on both sides.A no-break connection without adding visible spacing. | |
| Zero-width no-break space / BOM Formatting control | | BOMtext | At the start of a file it marks byte order; inside text it is a legacy no-break character.Do not insert it manually inside text; use U+2060 WORD JOINER instead. | |
| Line separator Formatting control | | line line | Unambiguously represents a line boundary.Structured data and text systems that need a semantic line boundary. | |
| Paragraph separator Formatting control | | paragraph paragraph | Unambiguously represents a paragraph boundary.Structured text; editor and format support varies. | |
| Joining and text directionFormatting characters for complex scripts, emoji, and mixed text direction. | ||||
| Zero-width non-joiner Formatting control | | میخواهم | Prevents adjacent characters from joining without adding width.Orthography and shaping in scripts whose letters normally join. | |
| Zero-width joiner Formatting control | | 👩💻 | Encourages character joining and prevents a break inside the sequence.Emoji ZWJ sequences and shaping in complex scripts. | |
| Left-to-right mark Formatting control | | Aאב | Invisibly establishes left-to-right direction in bidirectional text.Correcting punctuation order next to Arabic or Hebrew text. | |
| Right-to-left mark Formatting control | | אבA | Invisibly establishes right-to-left direction in bidirectional text.Correcting punctuation order in mixed right-to-left text. | |
For punctuation and spacing rules, see Typography.
Character names and line-breaking behavior follow Unicode NamesList and Unicode Line Breaking Algorithm.
Invisible does not mean inactive
- Spacing
- Some characters add a visible gap of a specific width.
- Wrapping
- Others create or prohibit a line-break opportunity without adding width.
- Formatting
- Joiners and direction marks can change shaping or character order.
Continue working with text
Copy a symbol, convert markup, clean a fragment, or keep the result in the notebook.
- Encode HTML entities Turn special characters into safe HTML entities or decode them back.
- Convert Markdown to HTML Prepare HTML markup from a Markdown draft.
- Remove HTML tags Keep readable text and discard markup.
- Change text case Convert letters to upper or lower case.
- Open the online notebook Use copied symbols in a note stored locally in your browser.
Questions about invisible characters
Why can two visually identical strings be different?
One string may contain a no-break, narrow, zero-width, or direction-control character. These characters can affect search, comparison, wrapping, and text shaping without being obvious on screen.
Which space should I use most often?
Use U+0020 SPACE for ordinary word separation and U+00A0 NO-BREAK SPACE only when related parts must remain on the same line. Use specialized widths deliberately and sparingly.
What is the difference between ZWSP and WORD JOINER?
U+200B ZERO WIDTH SPACE adds a possible break without visible width. U+2060 WORD JOINER does the opposite: it blocks a break without adding width.
Should I use U+FEFF inside text?
No. U+FEFF is primarily a byte order mark at the start of a file. Unicode recommends U+2060 WORD JOINER for the no-break behavior inside text.