Unicode 18.0.0
Why can a no-break space fail an identifier check?
U+00A0 is a space. An identifier grammar that accepts U+0020, or that accepts no spaces, does not treat U+00A0 as U+0020. Code points: U+00A0. This describes the scalar. It is not a test of a named language, username field, or compiler. Acceptance was not tested. A non-equivalent fallback is " " (ASCII space when a space is allowed). A different scalar. It permits a line break. Exact string match: no. NFC match: no. Appearance and meaning were not tested. Font coverage, shaping, and application acceptance were not tested, so those results are unknown.
Code points
- [NBSP]
U+00A0
What was checked
No-break space
A spacing character that inhibits ordinary line breaking at its position.
It resembles an ordinary space and can surprise search, source formatting and wrapping.
Replace with U+0020 when nonbreaking behavior is unnecessary.
- Fallback : Ordinary space Permits line breaks; changes layout behavior.
No-break space in an identifier
U+00A0 is a space. An identifier grammar that accepts U+0020, or that accepts no spaces, does not treat U+00A0 as U+0020.
This describes the scalar. It is not a test of a named language, username field, or compiler. Acceptance was not tested.
Use U+0020 when an ASCII space is required. Remove the space when the grammar allows no space.
- Fallback : ASCII space when a space is allowed A different scalar. It permits a line break.
What this does not prove
No OS, font, browser, application, field policy or rendering engine was tested. Unicode validity and segmentation do not establish actual display or acceptance.
Machine-readable JSON · Exact lookup · Markdown · Capability lab