Neatbo.

Clean selected hidden characters

Find zero-width spaces and other selected hidden code points, then remove or replace only the types you choose.

Browser-local processingInputTXTOutputTXTUp to 10 MiB per file · File limit: 1
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

Choose characters to change

Only U+200B is selected by default. Unselected matches remain in the output.

ZWJ/ZWNJ can shape scripts and emoji; U+2060, U+FEFF and U+200B can affect line breaks. Check the original before opting in.

Inspect from
0 characters · 0 bytes
Preparing the tool…

Before you start

Diagnose hidden characters in pasted text or a UTF-8 file. The default removes only zero-width spaces; other characters stay unless you select them. Review counts and source positions before using the result.

How to use this tool

  1. Paste text or choose one UTF-8 text file.
  2. Choose exactly which hidden characters to remove. Optionally turn non-breaking spaces into ordinary spaces.
  3. Run the tool, inspect the per-character counts and first source positions, then copy or download the cleaned TXT.

Supported inputs and limits

Only the seven listed code points are checked; this is not a general Unicode sanitizer.

U+200E can affect text direction; ZWJ/ZWNJ can shape scripts and emoji. Check the original before removing them.

Pasted text is limited to 1 MiB; one UTF-8 text file is limited to 10 MiB and 50,000 physical lines. An initial file BOM may be consumed during UTF-8 decoding.

Worked example

Example input

a​b
Example options
{"zeroWidthSpace":true,"wordJoiner":false,"bom":false,"joiners":false,"noBreakSpace":false,"leftToRightMark":false}

Example output

ab

When something does not work

If the output changes line breaks, emoji or joined scripts, turn off the relevant option and rerun from the original. Keep the original for comparison.

Frequently asked questions

Which characters are changed by default?

Only U+200B zero-width space is removed by default. U+2060, U+FEFF, U+200C, U+200D, U+200E and U+00A0 remain until you opt in.

Can this clean every invisible Unicode character?

No. It checks the seven listed code points. Non-breaking space U+00A0 is replaced with a regular space when selected, never deleted.

Is my input sent to a server?

No. Input is processed in your browser. A same-tab draft may remain until refresh or tab closure; save the output you need.

Documentation & further reading

Related tools