All text is processed only in your browser.

Choose changes to the output
Choose changes to the output

Inspect the text first. Select only the groups you need: controls, joiners, and selectors may be essential for text and emoji. The input stays unchanged.

Up to 50,000 UTF-16 code units. Text is not saved after you close the page.

How it works

The tool scans code points for special spaces, formatting characters, bidirectional controls, variation selectors, and selected fillers. Ordinary U+0020 spaces are not flagged. Findings indicate potentially significant characters, not errors: joiners are needed by some writing systems and compound emoji. Cleanup affects only selected groups; special spaces become ordinary spaces, while other selected characters are removed.

Practical example

If a copied name cannot be found by search, check for U+200B ZERO WIDTH SPACE. Unexpected line wrapping may be caused by U+00A0 NO-BREAK SPACE. Select special-space replacement, run the inspection, and compare the output with the input.

Local processing

Input and output are not sent to a server, included in analytics, or saved in browser storage. Copying and downloading happen only when you request them.

Frequently asked questions

Are characters removed immediately?

No. No cleanup groups are selected initially, so the output matches your input. Selected groups apply only when you run the inspection; the input field stays unchanged.

Why are line breaks and emoji flagged?

Tabs and line breaks are control characters. Some emoji use the U+200D joiner or U+FE0F variation selector. Removing them can change the appearance, so choose groups carefully.

How are positions counted, and what are the limits?

Positions start at 1 and count code points, not visible letters. All input up to 50,000 UTF-16 code units is inspected. The preview shows up to 2,000 code points and the first 8 positions of each detected character. This is a diagnostic for defined groups, not a complete Unicode security audit.