NOCLAU GUIDE
Zero Width Spaces Guide
Understand and remove zero width spaces safely.
A zero-width space can be easy to miss because the letters on either side may appear adjacent. Yet it remains a character in the underlying text. This guide focuses on U+200B: how to distinguish it from nearby character types, when removal solves a practical problem, and how to check that removal did not erase an intended boundary. The examples use bracketed code-point labels so you can read them; those labels stand for actual characters rather than text to paste literally.
Scroll the table sideways to see every column.
| Input notation | Desired result | Decision |
|---|---|---|
| AB[U+200B]12 | AB12 | Delete an accidental separator |
| red[U+200B]car | red car | Replace with an ordinary space manually |
| Intentional break opportunity | Keep intended wrapping | Preserve until layout is reviewed |
What U+200B means in a text workflow
U+200B is called ZERO WIDTH SPACE. It can supply a line-break opportunity without drawing an ordinary visible gap. The Unicode line-breaking specification describes that role, while the actual application decides how to lay out the line. A character can therefore be intentional in a display context and inconvenient in an identifier copied out of that same context.
Suppose a narrow page displays an unusually long reference number. A separator that helps the reference wrap may travel with the copied value. In a destination expecting an exact identifier, the extra character can matter. That is a possible workflow explanation, not a claim about every website or editor. Establish it by comparing a short copied value with a known expected value before changing a large document.
Do not confuse spaces with joiners
U+200C and U+200D have names that also include zero width, but they are not interchangeable with U+200B. Removing a joiner may change an emoji or connected-script sequence. U+2060 is a word joiner. U+FEFF can have a byte-order-mark role in encoded text and is also encountered within pasted strings. The similar names do not justify one indiscriminate removal rule.
The zero-width remover starts with conservative mode for that reason. Its rule removes U+200B, U+FEFF, and U+00AD, the soft hyphen. It preserves U+200C, U+200D, and U+2060. Notice that this is a small group of removal rules, not a U+200B-only selector. If you require an edit to exactly one character type, inspect every finding and use an editor with a targeted replacement function.
Reproduce a failed identifier comparison
Take the constructed value AB[U+200B]12. The visible target is AB12. Paste a real instance into the tool and confirm the U+200B badge. Run conservative cleanup, review the marked removal in the diff, and compare the result with AB12 in the application that originally rejected it. The useful outcome is that the intended value now matches, with no unrelated change.
Change the example to two words represented as red[U+200B]car. Deleting the hidden character produces redcar, not red car. If the author intended a word boundary, you must insert an ordinary space yourself. The remover does not infer words or supply missing punctuation. This distinction explains why a mechanically correct removal can still produce an incorrect sentence.
Decide whether to delete or replace
For machine identifiers, an accidental inserted separator often needs deletion because the expected string has no gap. For prose, the correct result depends on the words around the mark. For a heading intended to wrap in a narrow layout, preservation may be correct. Start from the destination's expected content, then choose an edit that produces it.
Do not let the tool's changed-character count make that decision. One change can join two words; ten changes can be harmless separators in a repeated identifier. Read each distinct pattern in context. If a long document has repeated occurrences, test one representative passage before extending the rule to the rest. Keep the untouched source available throughout the process.
Use the controls without losing context
Try an example loads a demonstration and replaces the current input. Keep any original elsewhere before using that button. The tool reports findings as you type or paste, while Clean text creates the output and diff. Changing the input or a cleaning rule clears the previous result so that Copy result cannot silently copy a stale transformation.
Show spaces and Show tabs affect the preview only. They help distinguish ordinary whitespace from a hidden mark, but the dots and arrows are not inserted into copied output. The issue list shows the first thirty findings even when the counter reports more. For a crowded report, inspect several shorter passages and check the location labels rather than relying on the preview alone.
Check multilingual text and narrow layouts
A plain English product code is a simpler test than a paragraph containing several writing systems. If the source includes intentional break opportunities or a language you do not read, removal needs a contextual review. Conservative mode preserves several joiners, but its name does not mean it understands the text. It applies the same character rules regardless of the language.
After copying the result, view it at the width where it will appear. Check a narrow mobile column as well as a wider desktop layout. Compare word boundaries, emoji appearance, and line wrapping. A document may look acceptable in the tool's textarea and still wrap poorly when pasted into a card, subtitle, or short form field. The destination is part of the test.
Troubleshoot a character that returns
If U+200B appears again after you paste, isolate the copying path. Type the expected value in the destination; paste from the source; then paste the cleaned value. Record which version develops the extra character. If the character only appears after a particular editor saves the content, inspect that editor's formatting or import behavior instead of repeatedly cleaning exported copies.
A remaining mismatch can also involve no-break spaces, ordinary leading or trailing spaces, or different letters. The remover is not a universal string-equality repair tool. Use the analyzer when the character type is uncertain. Avoid converting all text to ASCII, which would discard many valid names and languages while failing to explain the actual problem.
What removal can and cannot demonstrate
A successful repair shows that a specific character edit fixed a specific behavior in your test. It does not demonstrate AI authorship, recover lost formatting, or guarantee a detector score. Record the before and after values with code-point labels when sharing a bug report, and use invented content if the real value is private. That makes the issue reproducible without exposing the original document.
References and further reading
Examples on this page are constructed demonstrations, not measurements of how often a platform inserts characters.