Invisible Character Remover
Find and remove zero-width spaces, byte order marks and other characters that take up no space but travel with your text.
How to use this tool
- Paste or type your text into the box above.
- The result updates as you change the input — there is nothing to submit and nothing to wait for.
- Read the figures in the result panel, or copy the converted text.
- Use Copy or Download if you need the output elsewhere. Nothing was uploaded at any point.
The report comes before the removal: each hidden character is listed by its Unicode codepoint, its name, and how many times it appears. That matters because not every invisible character is junk — zero-width joiners are load-bearing in Arabic, Hindi and emoji sequences, and deleting them silently would corrupt that text.
Invisible Character Remover — the specification
| Detects | Zero-width spaces and joiners, byte order marks, soft hyphens, bidirectional marks |
|---|---|
| Reports | Codepoint, name and count for each |
| Modes | Remove, or report without changing anything |
| Spaces | Optional conversion of exotic spaces to a normal space |
| Processing | Entirely in your browser |
How it works
This tool runs entirely in your browser. There is no server involved, which means nothing you type or upload is transmitted, stored, or logged — and there are no usage limits, because there is nothing for us to ration.
You can confirm it yourself: open your browser's developer tools, select the Network tab, and use the tool. No request is made.
Who needs Invisible Character Remover
Debugging a string comparison that should match but does not, cleaning text copied out of a PDF or web page, and checking pasted content before it goes into code or a database.
Invisible Character Remover — frequently asked questions
How did invisible characters get into my text?
Usually copy and paste. Web pages use zero-width spaces to control line breaking, PDFs insert soft hyphens, and files saved by some Windows editors begin with a byte order mark. None of it is visible, and all of it survives a copy.
Why does my string comparison fail when the text looks identical?
This is the classic symptom. A zero-width space or byte order mark makes two visually identical strings different to any comparison. Paste both here and the counts will show which one is carrying something.
Is it safe to remove all of them?
Usually, but not always. Zero-width joiners and non-joiners are meaningful in Arabic, Persian, Hindi and emoji sequences — removing them there changes how the text renders. The report tells you which characters are present so you can decide before removing.
What is a byte order mark?
An invisible marker at the start of a file saying which byte order its encoding uses. Harmless in a document, but it breaks JSON parsers, shell scripts and CSV imports, which is why it is worth finding.
Does this work offline?
Yes. Once the page has loaded you can disconnect from the internet and it keeps working, because all the processing happens in your browser. That is also the simplest way to confirm nothing is being sent anywhere.
Is there a limit on how much I can paste in?
Nothing we impose. The practical limit is your device’s memory, since the work happens locally. Very large inputs get slower rather than being refused.
Related tools
From other categories
Background reading: Text and Developer Tools That Never Upload Your Data
Your file never leaves your device. Open your browser's Network tab while you use this page and you will see no upload — how that works.
Disclaimer. Published requirements change without notice. Confirm against the official source before you submit. Full disclaimer.