Text Tools

Invisible Character Finder

Find zero-width spacing, unusual spaces and hidden formatting in text. Review their locations and preview optional cleanup, with all processing in your browser.

Your content stays on your device Free, with no account
Find hidden formatting, choose what changes Local processing
Up to 100,000 UTF-16 text units. CR / CRLF line endings become LF.
Optional cleanup · none selected by default

Joiners, directional controls and selectors often have a valid purpose. Review the preview before copying. Normal spaces, tabs, LF and ordinary combining accents are preserved.

CLEANUP PREVIEW

Ready. Find characters first, then choose any cleanup options.

With no cleanup selected, the preview keeps the input after line-ending normalization. The findings below describe original positions. This detects selected Unicode properties, not every character that might look blank in a font.

A FEW SIMPLE STEPS

How to use Invisible Character Finder

  1. Paste text or load the example. Leave cleanup options unchecked for inspection only.
  2. Select Find & preview to see supported special characters and their positions.
  3. Choose specific cleanup groups, then run Find & preview again. Review every planned change and the result.
  4. Copy or download the resulting text, or download the full findings report. Editing inputs or options clears old results.
PRIVATE BY DESIGN

Why use this tool?

Your text is never uploaded to any server; all analysis is completed locally in your browser. There are no dependencies, accounts or saved input history. Your original stays in the editor while the optional cleanup result is shown separately.

Tool inputs stay in your browser. Only your theme preference is saved on this device.

A few things worth knowing

What does this tool detect?

It detects non-ASCII Unicode space separators, zero-width spacing and soft hyphens, bidi controls, joiners, variation selectors, line and paragraph separators, other control characters except TAB/LF, and remaining format or default-ignorable code points. Ordinary spaces, tabs, LF and ordinary combining accents are preserved and not flagged. Detection depends on your browser’s Unicode property data; this is not a complete visual-invisibility or security audit.

Does finding a character mean I should remove it?

No. Many detected characters are essential for correct text. Joiners can control writing and emoji sequences, variation selectors choose presentation, and directional controls support mixed-direction text. Removing only part of a directional sequence can also affect layout. All cleanup groups start unchecked. Inspect the original positions and preview the result before choosing what to change.

What do the cleanup options do?

Selected Unicode space separators become ordinary U+0020 spaces. Selected U+2028 and U+2029 separators become LF. Every other selected group is removed. Zero-width spacing includes U+00AD, U+180E, U+200B, U+2060 and U+FEFF. Variation selectors include Mongolian selectors as defined by your browser’s Variation_Selector property. Each code point belongs to one group; cleanup never cascades or trims other text.

How are locations and contexts calculated?

Offsets start at zero and count UTF-16 units in the original text after CRLF/CR normalize to LF. Code point positions, lines and columns start at one. Columns count UTF-16 units, so many emoji count as two. LF, U+2028 and U+2029 start a new line. Context includes up to 12 original UTF-16 units on each side and escapes non-ASCII values and backslashes, so hidden direction changes do not alter the report.

Are all findings included in downloads?

Yes. The table shows 50 findings per page, while the findings TXT includes every row and the selected cleanup groups. Context can reveal parts of the original in escaped form, so treat findings reports as private text. The result TXT contains only the previewed text. Empty results have no text download; findings can still be downloaded.

What are the limits and privacy behavior?

Input accepts up to 100,000 UTF-16 units after line-ending normalization. Oversized input returns an error without truncation or partial results. No Unicode normalization beyond line endings is performed. Clear empties input and results while keeping your cleanup choices; Try an example resets choices to inspection only. Text is not uploaded or stored. Unpaired UTF-16 surrogates are rejected to avoid silent replacement during TXT export; use Unicode Inspector to examine them.