What this detector checks
The detector checks each character against its local HIDDEN_CHARS table and several explicit Unicode ranges. It can report Control, Space, Format, Zero-Width, Bidi, Variation, and Tag findings. The configured ranges include C1 controls (U+0080–U+009F), variation selectors (U+FE00–U+FE0F and U+E0100–U+E01EF), tag characters (U+E0020–U+E007F), and U+E0001.
This is a configured scan, not a check for every possible invisible Unicode character. The Name column uses the detector's local names or generated labels, so a label is not always an official Unicode name. Characters outside the table and ranges may not be reported.
How to use the Invisible Character Detector
- Paste text into the text area with the placeholder Paste text to scan for invisible characters....
- To read a file, select Upload or drop a supported text file onto the input area. The shared uploader accepts
.txt,.csv,.log, and.mdfiles (plus files reported astext/plain), and reads the first accepted file. - Review Highlighted Preview. Flagged characters are replaced with labeled tags colored by their assigned risk level.
- Read the Detection Report to inspect each finding, then use Copy Clean Text, Copy Report, or CSV as needed.
Understand the detection report
Each finding includes these fields:
- Code Point: The code point, such as
U+200B. - Name: The name or label reported by the detector.
- Category: The finding's category, such as Control, Space, Format, Zero-Width, Bidi, Variation, or Tag.
- Position: A 1-based character position calculated while iterating the text with
Array.from. - Risk: A predefined high, medium, or low label assigned to the character or category. It is not a contextual security assessment and does not prove malicious intent.
- Guidance: Advice generated from the finding category.
Before text is entered, the preview shows Preview will appear here... and the report shows Paste text to see detected hidden characters. A scan with no matches displays No hidden characters found.
Copy cleaned text or export the report
- Copy Clean Text removes every character flagged by the detector and copies the remaining text to the clipboard. Review the report first: this can remove intentional low-risk spaces, variation selectors, zero-width joiners, and other flagged characters.
- Copy Report copies tab-separated text with the headers Code Point, Name, Category, Position, Risk, and Guidance.
- CSV downloads the findings as
invisible-character-report.csv.
Copy Report and CSV do nothing when the current scan has no findings.
Processing limits and local behavior
Scanning and file reading run in browser-side JavaScript. The page states that pasted or uploaded text is not sent to a server. The detector only reports characters in its configured table and ranges; it does not verify intent, assess contextual security impact, or connect to another application.
The local implementation does not define a maximum text length or file-size limit. The shared uploader filters dropped and selected files using the accepted text extensions and MIME type, reports read or cancelled-file errors beside the input, and reports unavailable or denied clipboard access after an export attempt.
Frequently Asked Questions (FAQs)
What is an invisible Unicode character?
A code point that produces no visible glyph, or almost none, such as a zero-width space (U+200B), a bidirectional text control, or a C0/C1 control code (a control character from one of two Unicode ranges). These can hide inside otherwise normal-looking text.
How is this different from a Homoglyph Detector?
A Homoglyph Detector looks for visible characters from another script that resemble Latin letters. This tool checks for characters that produce no visible glyph, or can affect text direction or formatting.
Is my text uploaded anywhere?
No. All scanning happens locally in your browser using JavaScript. Nothing you paste or upload is sent to a server.