Skip to content
MoneyDeck

Invisible Character Remover

Find and strip zero-width, non-breaking and hidden Unicode characters

Updated Β· Free, no signup

Removing them splits πŸ‘¨β€πŸ‘©β€πŸ‘§ into πŸ‘¨πŸ‘©πŸ‘§. Also keeps the tag sequences that make the England, Scotland and Wales flags.

Cleaned text

Copied from a web page: price list for 2026 β€” see attached.

Hidden or special characters found

6

Characters removed

5

Characters replaced

1

What was found

No-break space Γ—1, Soft hyphen Γ—1, Zero-width space Γ—1, Left-to-right mark Γ—1, Word joiner Γ—1, Byte order mark / zero-width no-break space Γ—1
  • Cleaned text is 59 characters, down from 64.

Hidden characters detected

CharacterCode pointCountAction
No-break spaceU+00A01Replaced with space
Soft hyphenU+00AD1Removed
Zero-width spaceU+200B1Removed
Left-to-right markU+200E1Removed
Word joinerU+20601Removed
Byte order mark / zero-width no-break spaceU+FEFF1Removed

About the Invisible Character Remover

This invisible character remover finds the characters you cannot see β€” zero-width spaces, zero-width joiners, byte order marks, soft hyphens, left-to-right and right-to-left marks, control codes and hidden Unicode "tag" characters β€” and strips them out. It also turns non-breaking and odd-width spaces into ordinary spaces, and can convert curly quotes, dashes and ellipses into plain ASCII. A table lists every hidden character it found, with its Unicode code point and how many times it appeared.

Hidden characters sneak in when you copy from web pages, PDFs, Word, Slack or AI chat tools, and they cause baffling problems: code that will not compile, CSV columns that do not match, passwords and coupon codes that are "wrong", duplicate entries that look identical, broken search and failed form validation. Developers, data analysts, SEO and content editors use this tool to clean text before pasting it into code, spreadsheets, databases or a CMS.

Zero-width joiners inside emoji sequences such as πŸ‘¨β€πŸ‘©β€πŸ‘§ and flag tag sequences are kept by default so emoji still display correctly, and tabs and line breaks are never touched. If any hidden tag characters spell out a message, the tool decodes it so you can see what was concealed. One caution: zero-width joiners and non-joiners are legitimate in Persian, Arabic and Indic scripts, and direction marks matter in Arabic and Hebrew text, so review the table before cleaning text in those languages. Everything runs locally in your browser.

How to use the invisible character remover

  1. 1Paste the text you suspect contains hidden characters.
  2. 2Choose whether to normalise spaces and convert smart punctuation.
  3. 3Check the table to see exactly which characters were found.
  4. 4Copy the cleaned text and paste it where you need it.

Formula and method

Cleaned text = input βˆ’ invisible format/control characters, with unusual spaces β†’ U+0020

The tool walks through the text one Unicode code point at a time and checks each against a list of characters that render as nothing or as a plain-looking space. Zero-width characters (U+200B, U+200C, U+200D, U+2060, U+FEFF), the soft hyphen (U+00AD), bidirectional marks and overrides (U+200E, U+200F, U+202A–U+202E, U+2066–U+2069), C0/C1 control codes other than tab and line breaks, Hangul fillers and tag characters (U+E0000 block) are removed.

No-break and fixed-width spaces (U+00A0, U+2000–U+200A, U+202F, U+205F, U+3000) become ordinary spaces, and line/paragraph separators become line breaks. With the ASCII option on, curly quotes become straight quotes, en and em dashes become hyphens and the ellipsis becomes three dots. A zero-width joiner sitting between two emoji is kept, since it glues sequences such as family and profession emoji together.

Worked examples

Text copied from a web page

The sample hides a no-break space, a zero-width space, a word joiner, a soft hyphen, a left-to-right mark and a byte order mark. The no-break space becomes a normal space and the other five are deleted, so the text looks the same but is now safe to paste into code or a spreadsheet.

Converting smart punctuation to ASCII

With the ASCII option on, the curly apostrophe and both curly double quotes become straight quotes, the em dash becomes a hyphen and the ellipsis character becomes three periods: five replacements in total.

Keeping emoji intact

The two zero-width joiners sit between emoji, so they are kept and the family emoji still shows as one picture. The zero-width space between "family" and "photo" is the only character removed.

Frequently asked questions

What is a zero-width space?+

A zero-width space (U+200B) is a Unicode character that marks a possible line break but has no width, so it is invisible. It often comes along when copying from websites and can break code, search, passwords and spreadsheet lookups.

How do I find hidden characters in text?+

Paste the text into this tool. It lists every invisible or unusual character with its name, Unicode code point and count. In code editors you can also turn on "render whitespace" or search with a regex such as [\u200B-\u200F\uFEFF].

Why is a non-breaking space a problem?+

A no-break space (U+00A0) looks identical to a normal space but is a different character, so formulas, string comparisons, CSV parsing and find-and-replace treat "10 kg" with an NBSP as different from "10 kg" with a regular space.

Will removing invisible characters break emoji?+

Some emoji, such as πŸ‘¨β€πŸ‘©β€πŸ‘§ or πŸ‘©β€πŸ’», are several emoji joined by zero-width joiners. By default this tool keeps joiners that sit between emoji, so they still display as a single picture. Turn that option off to remove every joiner.

What is a BOM and why does it appear at the start of files?+

The byte order mark (U+FEFF) is added by some editors at the start of UTF-8 files. It is invisible but can break CSV headers, JSON parsing and shell scripts, which then see a strange first character.

Related tools