How do I know I had invisible characters?
The usual symptoms are two strings that look identical but do not compare equal, a search that finds nothing, or a character count higher than what you can see.
Delete zero-width spaces, byte order marks and other characters you cannot see but your parser can.
FeedbackPaste the text that is behaving strangely
Click Process
Copy the cleaned text back into your document or code
Invisible characters occupy no visual space and are present in the file. That combination is what makes them expensive: you cannot proofread them away, and they surface later as behaviour nobody can explain from reading the text.
The common ones have ordinary origins. A non-breaking space is what a word processor inserts to stop a line breaking in the wrong place, and it is what many websites emit between a number and its unit. Zero-width spaces are used by some systems as soft line-break hints. Zero-width joiners hold together emoji sequences and certain scripts, where they are genuinely necessary. A byte order mark sits at the start of some files as an encoding hint. None of these is a defect in itself; all of them are a problem when they arrive somewhere that did not expect them.
The symptoms are the recognisable part. A search that finds nothing although the word is clearly on screen. Two strings that look identical and compare as different, which in code is a test failing on a line that reads correctly. A word that refuses to wrap and pushes a layout sideways. A CSV column that will not match a lookup. A username or a coupon code rejected as invalid. In each case the character is doing exactly what it was designed to do, somewhere it was never meant to be.
The risk of removing them is small but real, and it is worth naming. Zero-width joiners inside emoji sequences and inside Arabic, Persian and several Indic scripts are meaningful: strip them and you change how the text renders or, in some scripts, what it says. A blanket removal is safe for English prose and is not safe for multilingual content, which is the one case to check the result rather than trust it.
Non-breaking spaces are the one to think about rather than delete reflexively. If the source deliberately used one to keep a figure with its unit, replacing it with an ordinary space allows a line break in the middle of a measurement. For most pasted text they are accidental and removing them is right; in typeset material they may be doing their job.
This runs entirely in your browser, which matters because the text people paste into an invisible-character cleaner is normally something already misbehaving in production: a config value, a credential, a record that will not match.
The usual symptoms are two strings that look identical but do not compare equal, a search that finds nothing, or a character count higher than what you can see.
No. Line breaks and tabs are real whitespace and are kept. Use Remove Line Breaks if you want to unwrap paragraphs.
The same tool answers on HTTP. Free, 1,000 calls a day, no card, and one token works across every Astral API.
POST https://astraltext.com/api/v1/remove-invisible-characters