Invisible Characters in AI Text: Codes, Risks, and Removal
Invisible does not mean meaningless
Browse all cleaning guides, or continue here for the Unicode reference.
Some copied text contains characters that occupy a source position without a visible glyph. They can break search, validation, identifiers, or line wrapping. They can also be intentional in bidirectional or joined scripts. The invisible character remover reveals supported code points before removal so you can review them.
Tested character table
| Code point | Name | Test display | Default action | Review risk |
|---|---|---|---|---|
| U+200B | ZERO WIDTH SPACE | A[U+200B]B | Remove | May mark a deliberate break opportunity |
| U+200C | ZERO WIDTH NON-JOINER | A[U+200C]B | Remove | Can affect script shaping |
| U+200D | ZERO WIDTH JOINER | A[U+200D]B | Remove | Can affect ligatures and emoji sequences |
| U+200E | LEFT-TO-RIGHT MARK | A[U+200E]B | Remove | Can affect bidirectional ordering |
| U+200F | RIGHT-TO-LEFT MARK | A[U+200F]B | Remove | Can affect bidirectional ordering |
| U+2060 | WORD JOINER | A[U+2060]B | Remove | Can prevent an intended line break |
| U+FEFF | ZERO WIDTH NO-BREAK SPACE | A[U+FEFF]B | Remove | A leading BOM may be file metadata |
| U+00A0 | NO-BREAK SPACE | A[U+00A0]B | Replace with space | Changes non-breaking layout behavior |
Each row has a checked-in fixture. For the seven zero-width controls, A…B becomes AB; for U+00A0 it becomes A B.
When to remove and when to keep
Removal is usually reasonable for unexpected controls inside English identifiers or prose copied into a CMS. Review carefully when the text contains Arabic, Persian, Indic scripts, emoji sequences, mathematical notation, or deliberate no-break typography. A character's presence does not prove anything about authorship or which software produced it.
Diagnose before changing
Reveal the code point, record its source position, check the surrounding language, then remove only the categories you understand. Compare the result in the destination application. Follow the complete formatting-removal workflow, or continue with fixing ChatGPT spacing for visible inconsistencies. The complete supported pattern is documented in the methodology.