Short answer
What you need to know
Zero-width and formatting characters are Unicode code points that can change text behavior without a visible symbol. They have legitimate uses, but unexpected occurrences can break matching or disguise text and should be inspected in context.
Common invisible or confusing characters
Examples include zero-width spaces and joiners, byte-order marks, bidirectional controls, non-breaking spaces, variation selectors, and letters from another script that resemble Latin characters.
Many are essential for correct language rendering. Their presence alone is not evidence of abuse.
How to inspect suspicious text
Paste a copy into a Unicode-aware inspector showing code points, names, script changes, and positions.
Compare normalized and original text without overwriting the source. Check filenames, URLs, identifiers, and search terms for visually similar characters.
For code or security-sensitive identifiers, follow relevant rules before replacing characters.
What the text inspector reports
The in-browser Inspect Text tool identifies zero-width characters, bidirectional controls, and unusual spaces without automatically changing the text. Uploading a .txt file to the document scanner also reports control characters, words that mix Latin with Cyrillic or Greek letters, and readable Base64 or hexadecimal strings.
The characters you are most likely to meet
Zero-width space, U+200B: marks a place where a line may break. It commonly arrives in text copied from web pages and chat apps.
Zero-width joiner, U+200D, and zero-width non-joiner, U+200C: control whether neighbouring letters connect. Persian and Arabic spelling depends on them, and emoji such as family groups are several pictures joined with U+200D.
Byte-order mark, U+FEFF: belongs at the very start of some files. In the middle of text it acts as an invisible character with no width.
No-break space, U+00A0: looks like a space but keeps two words on the same line. It is the usual reason a pasted formula or command fails.
Right-to-left override, U+202E: forces the following characters to display in reverse order. It has been used to make a filename appear to end in a harmless extension.
Signs that text contains something invisible
A search for a word you can see on screen finds nothing. Two strings that look identical compare as different. A password or code that you pasted is rejected, but typing it by hand works.
The cursor needs an extra press of the arrow key to move past what looks like a single character, or a character count is higher than the number of letters you can see.
A worked example
You copy the word total from a web page into a spreadsheet lookup and it fails to match. The inspector shows a zero-width space between the t and the o: six characters where you see five.
Removing that one character fixes the lookup. If the same inspection had shown a zero-width joiner inside a Persian word or an emoji, removing it would change how the text displays, so that one should be preserved.
Important limitation
Verify important findings
Unicode is language-sensitive. Normalization or deletion can alter meaning, spelling, emoji, or joining behavior, so preserve the original and avoid automatic cleanup when context is unfamiliar.
Inspect text for invisible characters Review the methodology
Further reading
Authoritative references
These primary sources support the concepts and reference information in this guide. Their inclusion does not imply endorsement of Hidden Word Scanner.