Free tool

Find Hidden Characters in Your Text

Paste text below to scan for zero-width spaces, non-breaking spaces, and other invisible characters that can silently break matching, search, and formatting.

DiffListsInvisible character detector
Local processing

Your text

Paste text to scan
Private by architectureYour text is scanned locally and never leaves this browser.

How the invisible character detector works

Text with zero-width space, non-breaking space, and BOM characters marked at their exact position

Paste text into the box above and click Scan for hidden characters. The tool checks every character against a list of common invisible Unicode characters — zero-width spaces and joiners, non-breaking spaces, left-to-right and right-to-left marks, soft hyphens, and byte-order marks — and reports the exact line and column of each one it finds.

If matches are found, a cleaned version of your text with every detected character removed is ready to copy or download.

Why this matters for list comparison

Two values that look completely identical on screen can fail to match in a comparison tool if one of them has a trailing zero-width space or a non-breaking space where a normal space should be — this is one of the more frustrating “why doesn’t this match” bugs in data cleaning. Scan and clean suspect data here before pasting it into the list comparison tool, or the duplicates remover.

Where hidden characters usually come from

Which characters this tool checks for

CharacterCommon cause
Zero-width space / joiner / non-joinerCopy-pasted text, some autocomplete tools
Word joinerWord processors preventing line breaks
Non-breaking spaceWeb pages, CMS layout spacing
Byte-order mark (BOM)CSV/text files saved with UTF-8 BOM encoding
Left-to-right / right-to-left markText mixing different writing directions
Soft hyphenJustified text in word processors and PDFs
Ideographic spaceText copied from CJK-language sources

Common uses

The scan reports the exact line and column of every match, so you can find and fix the source of the problem rather than guessing which value in a long list is the culprit. If you regularly import data from the same source and keep running into hidden characters, it’s worth checking whether that source’s export settings can be changed to stop inserting them in the first place — a recurring BOM at the start of every CSV export, for example, usually comes from a specific save or export option rather than being unavoidable.

A note on what this tool doesn’t check

This detector focuses specifically on invisible Unicode formatting characters — it doesn’t flag visible but unusual characters like curly quotes, em dashes, or accented letters, since those are visible and rarely the cause of a “why doesn’t this match” problem. If your comparison issue turns out to be visible character differences instead (a curly apostrophe vs. a straight one, for example), that’s a normalization question best handled in the list comparison tool’s case and whitespace settings rather than something this scanner would catch.

Everything happens locally in your browser tab, so pasting sensitive or unpublished text into this scanner doesn’t send it anywhere — the scan and the cleanup both run entirely on your device, the same privacy model as every other tool on this site. Nothing you paste here is logged, stored, or transmitted anywhere, so it’s safe to scan drafts and unpublished material.

What are invisible characters?

Characters like zero-width spaces, non-breaking spaces, and byte-order marks that render as nothing visible but still count as characters, which can silently break text matching.

Why would text have hidden characters?

Common causes: copy-pasting from a web page or PDF, exports from certain CMS or word processors, and some autocomplete or emoji-keyboard tools that insert zero-width joiners.

How do I remove invisible characters from text?

Scan your text with this tool, then copy or download the cleaned version with every detected invisible character stripped out.

Can hidden characters cause list comparison mismatches?

Yes — two items that look identical can fail to match if one has a trailing zero-width space. Clean the text here before comparing.

Does this tool check for emoji or non-Latin characters too?

No, it specifically targets invisible/zero-width formatting characters, not visible emoji or non-Latin scripts, which display normally and don't break text matching the same way.

Will removing invisible characters change how my text looks?

No visible change — these characters render as nothing, so stripping them doesn't alter the text's appearance, only its underlying byte content.