How to find hidden Unicode characters
Paste text into the input area, or choose Upload for a text file. Invisible Character Detector replaces each finding with a labeled marker in Highlighted Preview. Detection Report then gives the code point, name, category, position, risk, and removal guidance. Copy Clean Text removes the findings from a separate copy of the text.
How to use the Invisible Character Detector
- Paste text into the input area.
- Select Upload and choose a
.txt,.csv,.log, or.mdfile, or a file with thetext/plaintype. - Inspect Highlighted Preview. Each finding appears as a labeled marker.
- Read Detection Report, then select Copy Clean Text, Copy Report, or CSV.
How to find zero-width spaces in text
The scan compares each character with a configured table and explicit Unicode ranges. It checks control codes, spaces, format characters, zero-width characters, bidirectional marks, variation selectors, and tag characters. Characters outside those entries and ranges remain unreported.
Input: Helloworld
Report: U+200B | ZERO WIDTH SPACE | Zero-Width | 6 | high
Clean text: Helloworld
U+200B sits between Hello and world in the input. The report gives it position 6 and identifies it as ZERO WIDTH SPACE, even though the character has no visible glyph.
What the Detection Report shows
Each finding has six fields:
- Code Point gives a value such as
U+200B. - Name gives the detector's stored name or a generated range label.
- Category identifies groups such as Space, Format, Zero-Width, Bidi, Variation, and Tag.
- Position is a 1-based character position calculated while the text is read with
Array.from. - Risk is a predefined high, medium, or low label. It does not assess the surrounding text.
- Guidance gives removal advice based on the category.
A scan with no matches displays No hidden characters found. Name uses the detector's local name or label, which can differ from an official Unicode name.
What Copy Clean Text removes
- Copy Clean Text removes every character found by the current scan and copies the remaining text to the clipboard. It can remove an intentional space, variation selector, zero-width joiner, or other flagged character, so check Detection Report before using the cleaned version.
- Copy Report places tab-separated findings on the clipboard with the six report columns.
- CSV downloads the file
invisible-character-report.csv.
Copy Report and CSV stay unavailable when the scan has no findings.
Where this comes up
For source code, the code point and position can identify a hidden character inside a variable name or string. Use that position to inspect the original file.
Text copied from a document can contain no-break spaces, soft hyphens, or zero-width marks. Compare the original with the copy from Copy Clean Text before placing the text in a form or content system.
For a CSV or log file, Upload reads the file into the input area. Detection Report then lists each flagged position, and CSV saves the report as invisible-character-report.csv.
When to use another text analysis tool
Use Text Analysis Tools to choose another text check. Choose Homoglyph Detector for visible Cyrillic, Greek, or Armenian characters that resemble Latin letters. Choose Unicode Inspector for grapheme clusters, script and block details, encodings, flags, lookups, or report exports. Choose Regex Tester to see how a JavaScript regular expression matches sample text.
Frequently asked questions
How do I detect invisible characters in text?
Paste the text into the input area, then read Highlighted Preview and Detection Report. Each finding includes its code point, name, category, position, risk, and guidance.
Can I remove hidden Unicode characters?
Yes. Select Copy Clean Text to copy the text with every character found by the current scan removed. Review the findings first because removal also affects intentional spaces, variation selectors, and zero-width joiners when they are flagged.
Does this check every invisible Unicode character?
No. It checks the characters in its configured table and explicit Unicode ranges. Characters outside those entries may remain unreported.
Does my text stay in the browser?
The scan and file reading run in browser-side JavaScript. The detector code does not send the text to a server. Export actions copy data to the clipboard or create a local CSV download when you select them.