Invisible Character Detector
Find zero-width, control, variation, private-use and spacing characters.
Normalize text, remove unwanted hidden characters, fix whitespace and review every change before copying the result.
Your text is processed in this browser and is not submitted to UnicodeNow.
No cleanup is applied outside the selected preset and options.
Paste text and choose your cleaning options.
| Change | Character or sequence | Code point | Action | Count | Reason | Risk | Positions |
|---|
The Unicode Text Cleaner can normalize Unicode representation, remove selected hidden characters, standardize whitespace, normalize line endings and show a detailed report of every transformation. No transformation is applied silently outside the selected preset and options.
Safe cleanup is designed for ordinary copied text. It preserves language shaping and emoji behavior by keeping ZWJ, ZWNJ, variation selectors, combining marks and bidi controls. Aggressive cleanup applies compatibility normalization and can remove more formatting controls; review the report before using aggressive output.
None preserves the current code-point representation. NFC is the default for most ordinary text storage and display. NFKC is useful in selected search, comparison or identifier workflows, but it can be lossy because compatibility mappings may change full-width characters, ligatures, circled numbers or superscripts. NFD and NFKD are advanced analytical forms, not ordinary cleanup defaults.
U+200B ZERO WIDTH SPACE is often accidental in copied text. U+200C ZERO WIDTH NON-JOINER and U+200D ZERO WIDTH JOINER can be required for language shaping, and ZWJ is part of many emoji sequences. U+FE0F VARIATION SELECTOR-16 controls emoji presentation. Bidi controls can be valid in multilingual text but should be reviewed in source code, filenames and identifiers. Combining marks are normal in many accented characters.
Whitespace rules are separate. You can trim document edges, trim each line, collapse repeated ASCII spaces, convert selected Unicode spaces such as non-breaking spaces, preserve tabs, preserve line breaks, and choose LF, CRLF or unchanged line endings. These operations may affect layout, so the report labels them as formatting-related or potentially lossy where appropriate.
Cafe\u0301 menu\u200B\n today
With Safe cleanup, the expected result is:
Café menu
today
The decomposed e + U+0301 becomes composed é through NFC, repeated spaces are collapsed, U+200B is removed, leading indentation before today is removed, and the line break is preserved.
Cleaning runs locally using JavaScript Unicode APIs and explicit transformation rules. The pipeline detects line endings, optionally normalizes line endings, applies selected Unicode normalization, removes selected hidden characters, replaces selected spaces, trims line and document whitespace, collapses repeated ASCII spaces, and then builds statistics and a change report.
Your input remains in the browser. Text is not uploaded, stored, inserted into URLs or sent through analytics.
It changes only the transformations selected by the current preset and options, then reports what changed, how often, why, and whether it may be lossy.
Start with Safe cleanup for ordinary copied text. Use Web form cleanup for form input, Plain-text cleanup for text files, and Aggressive cleanup only after reviewing the report.
NFC is a common default for ordinary storage and display, but no normalization form is universally correct for every data type.
NFC uses canonical composition. NFKC also applies compatibility mappings, such as full-width letters, ligatures or circled numbers, and can be lossy.
Normalization does not normally remove accents. NFD may separate accents into combining marks, and removing combining marks is a separate explicit option.
It can if joiners or variation selectors are removed. Safe cleanup preserves ZWJ and variation selectors by default.
Yes, if joiners, non-joiners, combining marks or bidi controls are removed without a documented policy.
Not by default. ZWJ can be required for emoji sequences and language shaping, so remove it only for a context that explicitly disallows it.
ZWSP is an invisible break opportunity, ZWNJ prevents joining, and ZWJ requests joining, including in many emoji sequences.
Only when the selected line-ending option asks it to. Safe cleanup normalizes line endings to LF.
Yes. The change report lists the changed character or sequence, code point, action, count, reason and risk label.
Some changes are not exactly reversible, especially removals, compatibility normalization and whitespace collapse. Keep the original when fidelity matters.
No. Cleaning runs in your browser and does not submit input to UnicodeNow, store it in browser storage or put it in the URL.
Find zero-width, control, variation, private-use and spacing characters.
Remove hidden Unicode controls and zero-width characters from text.
Normalize tabs, special spaces, duplicate spaces and line endings.
Remove control characters while optionally preserving tabs and line breaks.
Repair common spacing, hyphenation and line-break issues from copied PDF text.
Normalize Unicode text to NFC, NFD, NFKC or NFKD.
Inspect each Unicode character, encoding, category, script and normalization form.
Analyze code points, grapheme clusters, bytes, scripts and directionality.