Utilumo
LightDarkSystem
Guide3 min readUpdated September 15, 2026

How to find and remove invisible characters

Short answer

Paste the text into an inspector, identify the code points, and remove only the types you know are unwanted. Keep the original and compare the preview: invisible characters can carry useful spacing, emoji, or writing-direction information.

Inspect before changing the text

When pasted text looks right but behaves differently, check the actual characters. The Invisible Character Inspector shows bracketed code points, counts each type, and lists its positions. It preserves all characters until you select a removal.

Try it: Invisible Character InspectorInspect pasted text locally, then copy either the unchanged text or your removal preview.Open tool
  1. Keep the originalPaste a copy into Source text. Processing stays in the browser tab; this tool does not upload or save your text.
  2. Read the marked viewA marker such as ⟦U+200B⟧ identifies one code point. The corresponding entry gives its name, category, count, and positions. Tabs and line breaks are included; regular spaces are left unmarked.
  3. Choose a specific typeRead its explanation before selecting it. Selecting U+200B removes every occurrence of U+200B in the preview. Other types remain intact. Use Preserve all to undo the choices.
  4. Compare and copyCheck words, emoji, and paragraph boundaries in Removal preview before copying it. The source stays unchanged. Editing the source resets removal choices so they are not carried into new text.

A small example

Marked input:  invoice⟦U+200B⟧-2026
Remove U+200B: invoice-2026

Marked input:  New⟦U+00A0⟧York
Remove U+00A0: NewYork
Markers stand for actual characters. Deletion does not insert a replacement space.

A no-break space can keep adjacent words together on one line. A zero width space provides a possible break without an ordinary visible space. Whether either is unwanted depends on the text's purpose. See the Unicode line-breaking rules for their different roles.

Characters worth preserving

  • U+200D ZERO WIDTH JOINER can connect parts of an emoji sequence; U+FE0E and U+FE0F request text or emoji presentation. Removing them may change the result. See Unicode Emoji.
  • Joiners and non-joiners also influence letter forms in some writing systems. Other script controls can carry meaningful information. See the Unicode format-character specification.
  • Direction marks, isolates, and embeddings help arrange mixed-direction text. Removing a control, especially one side of a pair, can change how the remaining text appears. See the Unicode Bidirectional Algorithm.
Hidden does not mean maliciousThis tool identifies characters; it does not determine an author's intent, inspect links, or certify text as safe. A zero-result scan also does not rule out look-alike letters or misleading content.

Why positions may differ from your editor

The inspector counts Unicode code points starting at 1. A visible emoji or letter can contain several code points. The detailed table also gives zero-based UTF-16 offsets, which some editors and programming APIs use. For example, 😀 uses one code point and two UTF-16 code units. Unicode's character-counting explanation describes these different measures.

Coverage and limits

Inspection covers common unusual spaces, controls, Unicode formatting, and default-ignorable code points. Some have visible effects, depending on the font and context. Less common entries use generic labels; browser Unicode versions can differ. Ordinary visible accents are preserved and unmarked.

The workspace accepts up to 100,000 UTF-16 code units for inspection and retains oversized input without producing a partial result. It inspects the pasted string, not the original file bytes or encoding. Removal is exact deletion: it does not normalize spelling, replace spaces, trim text, or repair broken sequences.

For quick code-point lookups, use the invisible Unicode character reference. For byte counts and encoding basics, read What is UTF-8?.

References

Questions

Can I remove every invisible character?

The inspector deliberately has no remove-all shortcut. Each type requires a choice because it may affect spacing, emoji, writing direction, or script behavior. Keep the original and review the preview.

Will removing a no-break space replace it with a regular space?

No. It deletes that character. New followed by a no-break space and York becomes NewYork. If you want an ordinary space, edit the text deliberately instead.

Does the inspector change or store the text I paste?

The source stays intact when you select removals. The tool builds a separate preview in browser memory and does not upload or save your text. It writes to the clipboard only when you choose a copy action.

Keep reading