Unicode cleanup

Invisible Character Remover

See the characters you cannot see - then delete them.

Zero-width spaces, non-breaking spaces, bidirectional marks and hidden Unicode tags are shown one by one and removed in a single click. Your text stays on your own computer - never uploaded, never stored, never seen by anyone.

Paste some text to start scanning

The scan runs instantly on your own device as you type.

0
Found
0
Removed
0
Characters
0
Words

Your text stays on your own computer

This tool never uploads anything. Here is what that actually means for you.

Nothing is sent to us

What you put in here does not travel over the internet. It stays on the device you are using right now.

Nothing is stored

There is no copy on a server and no database with your content in it, because it never reaches us in the first place.

Nobody can read it

Not our team, not other visitors, not any other company. There is nothing to read, because nothing arrives.

It is never used to train AI

Your content is not fed into any AI model and not passed on to an AI provider.

It disappears when you close the tab

Nothing is left behind. Reload the page and the tool simply starts empty again.

Do not take our word for it

Open this page, then switch off your wifi or unplug the network cable. The tool keeps working perfectly. That is only possible because all the work happens on your own computer, not on ours.

That makes this safe for text you would never send by email: client work, contracts, medical or legal documents, exam material, unpublished writing and internal company information.

Every character named

Not just a count. Each finding shows its Unicode name and codepoint, so you can verify exactly what was in your text.

Hidden messages decoded

Runs of tag characters and variation selectors are decoded back into readable text, revealing smuggled instructions or trackers.

Emoji stay intact

Emoji rely on invisible joiners. We recognise them and leave them alone by default, so your text is not silently broken.

Your text stays private

Nothing is uploaded, nothing is stored and nobody can read what you paste. Close the tab and it is gone for good.

What are invisible characters?

Unicode contains characters that occupy no visual space at all. Some exist for good reasons: the zero-width non-joiner is required to write Persian correctly, and emoji such as the family emoji are built from several pictures glued together with a zero-width joiner. Others are pure formatting, such as the byte order mark that word processors leave at the start of a file. Because none of them show up on screen, they travel through copy and paste unnoticed and end up in your CMS, your spreadsheet or your codebase.

Why they cause problems

Invisible characters break things quietly. A zero-width space inside a keyword stops a search from matching. A non-breaking space in a CSV column breaks a numeric import. A soft hyphen in a URL slug produces a 404. In code, an invisible character inside an identifier produces an error message that makes no sense, because the two identifiers look identical on screen. And bidirectional override characters can make a line of source code display in a completely different order from how it actually executes, which is the basis of the well-known Trojan Source attack.

Hidden messages and prompt injection

A smaller group of these characters can carry data. The Unicode tag block maps one to one onto printable ASCII, so a sequence of tag characters is literally a readable sentence that no editor will show you. Variation selectors can be abused the same way to encode arbitrary bytes. Both are used to hide instructions inside text that is later pasted into an AI assistant, and to fingerprint documents so a leak can be traced back to a specific recipient. This tool decodes both, so you can read the hidden content instead of merely deleting it.

How this tool handles them

Every finding is classified rather than blindly deleted. Characters with no legitimate use in your text are marked as confirmed findings and removed. Characters that may well belong there, such as a zero-width non-joiner between Persian letters or a joiner inside an emoji, are shown but treated with care - emoji joiners are kept by default, because removing them turns one emoji into three. That distinction is the difference between cleaning a text and damaging it.

Invisible Character FAQ

Related Tools