Remove special characters
Keeps letters, numbers and spaces — everything else goes.
This works by keeping rather than deleting: letters, digits and whitespace survive, and everything else is removed. That is the reliable direction, because you cannot list every character that might turn up in text but you can say exactly what you want to be left with.
Three different meanings of "special character"
People arrive here wanting three different things, so there are three buttons.
Remove special characters keeps letters, numbers and spaces. Letters means letters in any alphabet — Cyrillic, Greek, Arabic, Chinese all survive. This is the right choice when you want clean text and your content is not necessarily English.
Remove non-ASCII only deletes anything outside the basic English character set, keeping ordinary punctuation. This is for the opposite problem: a system that only accepts ASCII, where curly quotes, accented letters and emoji are what is breaking the import. Note it deletes accented letters entirely rather than converting them.
Remove accents converts rather than deletes: é becomes e, ü becomes u, ñ becomes n. The word stays readable. For an ASCII-only target this is usually what you actually wanted, so run it before removing non-ASCII and you keep the meaning instead of losing letters.
What this fixes
- Imports that fail on one row. A stray control character or a smart quote in one field rejects the file with an unhelpful error.
- Identifiers and filenames. Systems that reject symbols in names. For URLs specifically, the slug generator does a better job, since it also handles spaces and transliteration.
- Text pasted from Word or a PDF. Carries invisible formatting marks, zero-width characters and non-breaking spaces that cause mysterious behaviour later.
- Data normalisation. Making two lists comparable when one came from a system that allowed symbols.
- Legacy systems. Anything that predates Unicode and mangles what it does not understand.
Check before you commit
Removing characters is lossy, and the loss is not always visible. A price list stripped of currency symbols still looks like a price list. An email column stripped of the at sign looks fine at a glance and is entirely broken. Scan the result before replacing your source data, and remember the undo button is one press away.
Two options exist for the cases where the defaults are wrong. Remove numbers too is for when you want text only. Remove spaces too produces a single unbroken run of characters, useful for building identifiers.
Doing it without this tool
Excel: CLEAN removes only the first 32 control characters and nothing else — a very common
disappointment. Anything more needs a SUBSTITUTE chain or VBA.
Word: Find & Replace with wildcards and [!A-Za-z0-9 ], which is ASCII-only and deletes
accented letters.
Command line: tr -cd '[:alnum:][:space:]' < file.txt for ASCII;
iconv -f utf-8 -t ascii//TRANSLIT converts accented letters to their plain equivalents.
Python: re.sub(r'[^\w\s]', '', s) is the answer you will find everywhere, and it keeps the
underscore because \w includes it — a small surprise that shows up later.
Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.
How to use it
- Paste your text into the box.
- Press "Remove special characters" to keep letters, numbers and spaces.
- If a system needs plain English only, press "Remove accents" first so é becomes e, then "Remove non-ASCII only".
- Check the result before replacing your source data — removal is lossy.
Related tools
Frequently asked questions
No. Letters in every alphabet are kept, including Cyrillic, Greek, Arabic and Chinese. If you specifically need plain English only, use "Remove non-ASCII only" instead.
Removing accents converts é to e and keeps the word readable. Removing non-ASCII deletes é entirely. Run the accent conversion first if your target is ASCII, otherwise you lose letters rather than simplifying them.
No. Only letters, digits and whitespace are kept, so the underscore is removed with the other symbols. Many code snippets that claim to do this keep it by accident.
Yes, tick "Remove numbers too" to keep letters and spaces only.
Usually yes — it strips the invisible control and formatting characters that cause it. If the problem is odd spacing rather than odd characters, the text cleaner handles that specifically.