Hidden Character Detector
Detect invisible, zero-width, and RTL override characters in text. Free online security tool for finding hidden Unicode characters.
What are hidden characters in text?
Hidden characters are Unicode characters that are invisible or have zero width when rendered. They include zero-width spaces (U+200B), non-breaking spaces (U+00A0), zero-width joiners (U+200D), RTL/LTR override characters, and other control characters that affect text display without being visible themselves.
What types of hidden characters does this tool detect?
This tool detects zero-width spaces (U+200B), zero-width non-joiners (U+200C), zero-width joiners (U+200D), non-breaking spaces (U+00A0), soft hyphens (U+00AD), RTL marks (U+200F), LTR marks (U+200E), RTL overrides (U+202E), LTR overrides (U+202D), and other invisible Unicode control characters.
Why should I check for hidden characters?
Hidden characters can be used for malicious purposes such as trojan source attacks (making code look different from what it does), phishing (making file names like "exe.txt" appear as "txt.exe"), bypassing content filters, and embedding tracking markers. They can also cause unexpected behavior in code, URLs, and data processing.
What is a trojan source attack?
A trojan source attack uses invisible Unicode characters like bidirectional (Bidi) overrides to make source code appear differently from how it will be compiled or executed. For example, a comment could visually appear to close a statement while the compiler reads it differently, potentially hiding malicious code. This was identified by researchers at Cambridge University in 2021.
What are RTL override characters and why are they dangerous?
RTL (Right-to-Left) Override characters (U+202E) reverse the display direction of text that follows them. This is commonly exploited in phishing attacks to make a file like "photo\u202Efdp.exe" display as "photoexe.pdf", tricking users into opening malicious executables.
What is a zero-width space and where does it come from?
A zero-width space (U+200B) is an invisible character that takes up no visual space. It is commonly used in word processing for line-break opportunities, in URLs for breaking long addresses, and sometimes inserted by copy-paste from websites or PDFs. While often harmless, it can cause issues in code, data comparison, and authentication tokens.
Can hidden characters be used to track me?
Yes. Some websites and documents embed invisible Unicode characters as watermarks or tracking markers. These can uniquely identify the source of a copied text. Zero-width characters can also be used in steganography to embed hidden messages within seemingly normal text.
How does this hidden character detector work?
The tool analyzes each character in your text by examining its Unicode code point. It identifies characters that are invisible, zero-width, or affect text direction. Results are displayed with character positions, Unicode code points, character names, and highlighted locations in your text for easy identification.
Is my data sent to any server?
No. All processing happens entirely in your browser using JavaScript. Your text never leaves your device, making this tool safe for checking sensitive content including passwords, API keys, code snippets, and confidential documents.
How do I remove hidden characters from my text?
After detection, you can use the tool's remove function to strip all hidden and invisible characters from your text. Alternatively, you can selectively remove specific character types. The cleaned text will only contain visible, printable characters.
Can this tool detect homoglyph attacks?
This tool focuses on invisible and zero-width characters. For homoglyph attacks (where characters from different scripts look similar, like Latin "a" vs Cyrillic "\u0430"), you would need additional visual comparison tools. However, many homoglyph attacks also use invisible characters, which this tool will detect.
Is this tool free to use?
Yes, this hidden character detector is completely free. No registration required, no usage limits, and no hidden fees. You can check unlimited amounts of text as many times as you need.
Does it work with all languages and scripts?
Yes. The tool works with Unicode text in any language or script, including Latin, Cyrillic, Arabic, Hebrew, Chinese, Japanese, Korean, Devanagari, and all other writing systems supported by Unicode.
What is the difference between zero-width space and non-breaking space?
A zero-width space (U+200B) is completely invisible and takes no horizontal space. It is used to indicate optional line-break points. A non-breaking space (U+00A0) is visually similar to a regular space but prevents automatic line breaks at its position. NBSP is visible as a gap between words, whereas ZWSP is truly invisible.