Utilia

Invisible Character Remover

Find and remove invisible characters online. Detect zero-width spaces, non-breaking spaces, soft hyphens and bidi controls (Trojan Source) in any text.

Characters to remove

How to remove invisible characters

  1. Paste your text in the input box. It is scanned as soon as you paste.
  2. Read the result: a table lists every hidden character found, with its code point, short name, Unicode name, type and count. The Highlighted input shows where each one sits, as a small colored badge such as ZWSP or NBSP.
  3. Under Characters to remove, keep the types you want to delete checked. Select all / none toggles them all at once.
  4. Leave Replace no-break and special spaces with a normal space checked so that “10 000” keeps its space instead of becoming “10000”.
  5. Copy the cleaned text from the result box. Remove invisible characters refreshes the result.

What this tool detects

Type Characters Where they come from
Zero-width characters ZWSP U+200B, ZWNJ U+200C, ZWJ U+200D, WJ U+2060, BOM U+FEFF Web pages, word processors, text copied from PDFs or chat apps, files saved with a byte order mark
No-break and special spaces NBSP U+00A0, narrow NBSP U+202F, thin, em, en, figure and ideographic spaces, line and paragraph separators HTML  , French typography, Word, macOS Option+Space
Soft hyphens SHY U+00AD Hyphenation hints from word processors and websites
Bidirectional controls LRM, RLM, ALM, LRE–RLO (U+202A–U+202E), LRI–PDI (U+2066–U+2069) Mixed Arabic, Hebrew and Latin text, and malicious code
Control characters NUL, ESC, form feed, DEL, C1 controls Terminal output, old files, broken encodings
Other format characters Tag characters, invisible math operators, Hangul fillers, braille blank, any other Unicode “Cf” character Hidden watermarks, “blank” usernames, obscure sources
Variation selectors VS1–VS256 Emoji styles, CJK variants, and a steganography trick that hides data after an emoji

Tabs, line feeds and carriage returns are ordinary characters and are never touched. Variation selectors are not selected by default because they are usually legitimate.

Why invisible characters cause trouble

They look like nothing, yet computers see them. A zero-width space inside a word breaks search and spell-checking, a byte order mark at the start of a CSV file corrupts the first column name, a no-break space makes two values differ in a spreadsheet lookup or a password field, and a soft hyphen can split a URL. Code that contains a stray U+FEFF or U+00A0 may refuse to compile with a baffling error.

Invisible characters can also be deliberate: some are used to fingerprint copied text so that a leak can be traced back to its source.

Trojan Source and bidi controls

Bidirectional controls tell the display engine to lay out part of a line from right to left. Inside source code they can make the code look different from what the compiler actually runs, an attack published in 2021 as “Trojan Source” (CVE-2021-42574). When the tool finds one, it shows a warning. Legitimate Arabic or Hebrew text may use LRM and RLM marks, but embedding, override and isolate controls in code or a config file are a red flag.

Keep what you need

  • Keep joiners and selectors inside emoji protects the zero-width joiners and variation selectors that build emoji such as 👨‍👩‍👧 or ❤️. Uncheck it to remove them too; the family emoji then turns into three separate people.
  • Persian, Hindi and other scripts use ZWNJ and ZWJ to control how letters join. For such text, uncheck Zero-width characters (ZWSP, ZWNJ, ZWJ, WJ, BOM).
  • French typography uses narrow no-break spaces before « ; : ! ? » and inside quotation marks. Uncheck the spaces type to keep them.

Frequently asked questions

How do I know if my text contains zero-width spaces?

Paste it here. If the table stays empty and the status reads “No invisible characters found.”, there are none.

Will removing no-break spaces join my words together?

Not with the default setting: no-break and special spaces are replaced with a normal space. Uncheck the replace option only if you want them deleted.

Does the tool remove normal spaces, tabs or line breaks?

No. Only the character types listed above are affected.

Is it safe to paste confidential text?

Yes. The scan and the cleaning run in your browser; nothing is uploaded or stored.

Why does my cleaned file still show a strange character at the start?

If the file was saved in an encoding other than UTF-8, the problem may be encoding, not an invisible character. Re-save the file as UTF-8 and scan it again.