Unicode format guide
Why invisible characters appear in text
Some Unicode characters affect joining, wrapping, or file interpretation without drawing a visible mark. They may arrive through copied web content, messaging apps, rich-text editors, exported spreadsheets, or files saved with a byte order mark. Two strings can therefore look identical while failing an exact comparison, username check, search, or data import.
Visible result: productcode
Stored input: product[U+200B]code
The hidden U+200B can prevent an exact match even though no gap is visible.Characters checked by this tool
| Code point | Name | Why it needs care |
|---|---|---|
U+200B | Zero Width Space | Allows a wrapping opportunity without a visible space. |
U+200C | Zero Width Non-Joiner | Can intentionally control letter joining in several writing systems. |
U+200D | Zero Width Joiner | Participates in joined scripts and many emoji sequences. |
U+2060 | Word Joiner | Prevents a line break without adding visible width. |
U+FEFF | BOM / Zero Width No-Break Space | May identify byte order at a file start or appear unexpectedly inside text. |
When cautious cleanup is appropriate
- Cleaning identifiers copied from web pages or documents.
- Removing invisible breaks from email addresses, URLs, or product codes.
- Preparing plain Latin text for exact comparison.
- Removing a stray BOM after importing a UTF-8 file.
When not to remove everything
- ZWNJ and ZWJ can carry meaning in Arabic-derived and Indic scripts.
- ZWJ is used in emoji such as family and profession sequences.
- A word joiner may have been inserted intentionally to control wrapping.
- Always compare the output when multilingual text is involved.
How the three modes differ
Cautious Cleanup removes the characters most often found as unwanted residue—U+200B, U+2060, and U+FEFF—but retains the two joining controls. Remove All deletes all five listed code points and is intended for data fields where exact visible characters matter more than shaping. Leading BOM changes only a U+FEFF at position zero, leaving every other occurrence untouched.
What remains unchanged
Regular spaces, non-breaking spaces, tabs, line endings, punctuation, and all other characters are preserved. The transformation runs in the browser, and the live audit counts categories rather than exposing the submitted text elsewhere. For visible but non-breaking spacing, use the non-breaking space remover. For a wider introduction, read the Unicode whitespace guide.