Unicode Whitespace Characters — All Space Types
A complete guide to Unicode whitespace characters including regular space, no-break space, em space, thin space, ideographic space, and zero-width spaces with their encodings.
Detailed Explanation
Unicode Whitespace Characters
Unicode defines far more than just the common space character (U+0020). There are over a dozen whitespace and space-related characters, each with different widths, line-breaking behaviors, and encoding sizes.
Standard Spaces
| Code Point | Name | UTF-8 Bytes | Width |
|---|---|---|---|
| U+0020 | SPACE | 1 byte (20) | Normal word space |
| U+00A0 | NO-BREAK SPACE | 2 bytes (C2 A0) | Same as SPACE, prevents line break |
| U+2002 | EN SPACE | 3 bytes (E2 80 82) | Width of letter "n" |
| U+2003 | EM SPACE | 3 bytes (E2 80 83) | Width of letter "M" |
| U+2004 | THREE-PER-EM SPACE | 3 bytes (E2 80 84) | One-third of em |
| U+2005 | FOUR-PER-EM SPACE | 3 bytes (E2 80 85) | One-quarter of em |
| U+2006 | SIX-PER-EM SPACE | 3 bytes (E2 80 86) | One-sixth of em |
| U+2009 | THIN SPACE | 3 bytes (E2 80 89) | Thin typographic space |
| U+200A | HAIR SPACE | 3 bytes (E2 80 8A) | Very thin space |
| U+202F | NARROW NO-BREAK SPACE | 3 bytes (E2 80 AF) | Narrow, non-breaking |
| U+205F | MEDIUM MATHEMATICAL SPACE | 3 bytes (E2 81 9F) | Used in math formulas |
| U+3000 | IDEOGRAPHIC SPACE | 3 bytes (E3 80 80) | Fullwidth CJK space |
Zero-Width Spaces
| Code Point | Name | UTF-8 Bytes | Purpose |
|---|---|---|---|
| U+200B | ZERO WIDTH SPACE | 3 bytes (E2 80 8B) | Optional line break point |
| U+FEFF | BYTE ORDER MARK / ZERO WIDTH NO-BREAK SPACE | 3 bytes (EF BB BF) | BOM at file start; ZWNBSP elsewhere |
Why This Matters
Whitespace bugs are among the hardest to diagnose visually. A no-break space (U+00A0) looks identical to a regular space but will break string comparisons, regular expressions, and trim operations that only target U+0020. The Unicode Inspector reveals the exact code point and byte sequence of every space character, making these invisible differences visible.
Use Case
Use this when debugging string comparison failures caused by different space types, cleaning up copy-pasted text from word processors (which often insert non-breaking spaces), or understanding why text wrapping behaves unexpectedly in HTML or PDF layouts.