Skip to content
WriteWithin

Text Character Cleaner

Strip special characters, emojis, symbols, numbers, accents, and invisible junk in one private browser tool — without breaking non-Latin scripts.

Presets

Special & symbols

Letters & numbers

Invisible & control

Quotes & Unicode

Your own rules

Processing order is fixed: normalize → invisible → control → quotes → accents → emojis → character classes → custom rules → ASCII → tidy.

Why this tool is different

  • Accent removal that understands scripts — Hindi, Arabic, Hebrew, and Thai keep their marks instead of being mangled
  • Emojis come off as whole clusters, so families, flags, and skin tones leave no invisible leftovers
  • Symbols and punctuation are separate switches instead of one vague “special characters” bucket
  • Keep or remove your own characters, so a dash or underscore can survive a cleanup
  • All four Unicode normalization forms explained in plain language
  • Private in-browser processing in 16 languages

How to remove special characters

Remove special characters clears punctuation and symbols together, keeping letters, numbers, and spaces. If you only want one of them, use the separate Remove punctuation and Remove symbols switches instead.

Remove non-alphanumeric characters

Remove non-alphanumeric keeps only letters and numbers from any language. Turn off Keep spaces to collapse everything into one unbroken string, which is handy for IDs and codes.

Remove numbers from text

Remove numbers drops digits in every script, including Arabic-Indic and Devanagari numerals, not just 0 to 9.

Remove letters from text

Remove letters strips letters from every script, leaving digits, punctuation, and spacing. Pair it with Remove punctuation to pull clean numbers out of a messy paste.

Remove emojis from text

Remove emojis deletes each emoji as a complete unit. A family emoji, a country flag, or a waving hand with a skin tone is one cluster, so nothing invisible is left behind to break your text later.

Remove symbols from text

Remove symbols targets math, currency, and sign characters such as plus, equals, dollar, and euro. Punctuation like commas and full stops stays unless you also remove punctuation.

Remove accents from text

Remove accents turns café into cafe and Ελλάδα into Ελλαδα. It deliberately skips Devanagari, Arabic, Hebrew, Thai, and Cyrillic, because in those scripts the marks are part of the letter rather than decoration.

Convert smart quotes

Smart quotes to straight replaces curly quotes and apostrophes with plain ones, which is what code, CSV files, and older systems expect. Straight quotes to smart does the reverse for publishing. Dashes and ellipsis to ASCII also flattens en dashes, em dashes, and the single-character ellipsis.

Remove invisible characters

Safe mode removes zero-width spaces and byte order marks. Aggressive mode also removes joiners, which some Arabic and Indic text needs, so reach for it only when you know your text does not. Remove direction marks clears bidirectional overrides and soft hyphens.

Normalize Unicode text

NFC composes letters and marks into single characters and is the safest choice for storage and search. NFD splits them apart. NFKC and NFKD go further and fold lookalikes, so fancy fonts, ligatures, and circled numbers become plain text.

Remove control characters

Remove control characters clears null bytes and other invisible control codes that break databases and exports. Keep tabs and line breaks is on by default so your layout survives.

Related tools

Whitespace Cleaner · Line Tools · Case Converter · URL Cleaner

Why character-level cleaning matters

Some text problems are not about how many spaces you have — they are about which characters survived the copy. Microsoft Word inserts curly quotes that break JSON. Design tools export em dashes and ellipsis characters plain-text editors mishandle. Emoji render as boxes in legacy systems. OCR output scatters section signs and soft hyphens through otherwise readable sentences. Zero-width joiners from RTL paste break search indexes silently.

The WriteWithin Text Character Cleaner targets character classes, Unicode normalization, and custom keep/remove rules — all in your browser, with no upload. Use it when the Whitespace Cleaner has already fixed spacing but symbols, emoji, or invisible control codes still cause trouble.

What this tool removes and keeps

Special, non-alphanumeric, numbers, and letters

Remove special characters clears punctuation and symbols together while keeping letters, numbers, and spaces. For finer control, toggle Remove punctuation and Remove symbols separately — commas and full stops are punctuation; plus, equals, and currency signs are symbols.

Remove non-alphanumeric (keep letters and numbers only) strips everything else from any script. Turn off Keep spaces to collapse the result into one unbroken string — handy for IDs, slugs, and matching keys. Remove numbers drops digits in every numeral system, not just 0–9. Remove letters strips letters from every script, leaving digits and punctuation if those options stay off.

Emoji clusters and symbols

Remove emojis deletes each emoji as a complete unit. Family emoji, country flags, and skin-tone modifiers include zero-width joiners internally; the cleaner removes the whole cluster so no invisible leftovers break your text later. Remove symbols targets math, currency, and sign characters such as plus, equals, dollar, and euro while leaving punctuation unless you remove that too.

Accents and script-aware behavior

Remove accents turns café into cafe and Ελλάδα into Ελλαδα using decomposition that understands which scripts treat marks as decoration. It deliberately skips Devanagari, Arabic, Hebrew, Thai, and Cyrillic, where marks are part of the letter — blind stripping would corrupt meaning. This script-aware approach is something generic “remove diacritics” tools often get wrong.

Smart quotes, dashes, and typographic punctuation

Smart quotes to straight replaces curly quotes and apostrophes with plain ASCII — what code, CSV, and older databases expect. Straight quotes to smart does the reverse for publishing. Straighten dashes converts en dashes, em dashes, and the single-character ellipsis to ASCII hyphen and three dots.

Invisible and control characters

Safe invisible mode removes zero-width spaces and byte-order marks. Aggressive mode also strips joiners Arabic and Indic text may need — use only when you know your content is unaffected. Remove direction marks clears bidirectional overrides and related controls that scramble mixed RTL/LTR paste. Remove control characters drops null bytes and other invisible codes that break databases; Keep tabs and line breaks stays on by default so layout survives.

Unicode normalization: NFC, NFD, NFKC, NFKD

NFC composes letters and combining marks into single characters — the safest default for storage and search. NFD splits them apart. NFKC and NFKD go further, folding compatibility characters so fancy fonts, ligatures, and circled numbers become plain text. Choose NFKC when importing user-generated content into strict ASCII systems; choose NFC for general multilingual storage on WriteWithin.

Custom keep and remove characters

Keep characters lists symbols that must survive a aggressive cleanup — hyphens, underscores, dots for filenames. Remove characters lists exact code points or literals to strip regardless of other toggles. Pair Keep alnum only with Keep characters -_. for filename-safe output without guessing which symbol class each mark belongs to.

Presets for common jobs

  • Plain text — NFC, safe invisible removal, straight quotes, straight dashes, control cleanup, tidy spaces
  • Filename safe — accents off, emoji off, alnum plus -_. only, ASCII-only
  • Name list — emoji and symbols off, numbers off, tidy spaces
  • Numbers only — strip letters, emoji, symbols, punctuation
  • Letters only — strip numbers, emoji, symbols
  • ASCII safe — NFKC, accents off, emoji off, straight quotes, ASCII-only

Character Cleaner vs Whitespace Cleaner

The Whitespace Cleaner collapses repeated spaces, replaces NBSP, converts tabs, fixes PDF line breaks, and optionally removes blank lines. It does not remove emoji, punctuation classes, or smart quotes. When Word paste shows “correct” spacing but still fails a JSON parser, the problem is usually curly quotes or em dashes — character-level, not space-level.

Character Cleaner includes Tidy spaces for light collapse after stripping symbols, but for heavy spacing work — PDF joins, NBSP normalization, show-invisible preview — use Whitespace Cleaner first. Typical chain: Whitespace Cleaner → Character Cleaner → Line Tools for list dedupe.

Case Converter reshapes letter casing after characters are stable. URL Cleaner handles link parameters. Line Counter measures without modifying.

Step-by-step: prepare text for code or CSV

  1. Paste your document export into the Character Cleaner.
  2. Apply the Plain text or ASCII safe preset.
  3. Confirm smart quotes to straight and straighten dashes are on.
  4. Enable safe invisible removal and remove control characters.
  5. Copy output and paste into your IDE, JSON file, or CSV importer.

Step-by-step: build filename-safe strings

  1. Apply the Filename safe preset (NFKC, accents removed, emoji off, alnum only).
  2. Add Keep characters -_. if underscores or dots must remain.
  3. Turn on ASCII only when the destination filesystem requires it.
  4. Enable Tidy spaces to collapse gaps left after symbol removal.
  5. Copy and rename files or create slug fields in your CMS.

Common mistakes to avoid

  • Removing accents on Arabic or Hindi text — the tool skips meaningful scripts, but aggressive invisible mode can still harm joiners; prefer safe invisible on multilingual paste.
  • Using Remove special when you only mean emoji — toggle Remove emojis alone to keep punctuation.
  • Expecting PDF line repair here — hard line breaks are a Whitespace Cleaner job.
  • NFKC on display text you want to look pretty — NFKC folds stylistic variants; use NFC for human-facing copy.
  • Forgetting Keep tabs and line breaks — turning it off flattens structured logs; disable only when you truly need one line.

Benefits of script-aware character cleaning

  • Emoji removed as whole clusters — no invisible joiner leftovers
  • Accent stripping respects scripts where marks carry meaning
  • Separate switches for symbols, punctuation, numbers, and letters
  • All four Unicode normalization forms with plain-language presets
  • Private in-browser processing for sensitive drafts and client data

Real-world use cases

JSON and API payloads: straight quotes, no control characters, NFC normalization. E-commerce SKU cleanup: letters and numbers only, symbols off. Social post prep for SMS: emoji off, accents optional. OCR and PDF paste: combine with Whitespace Cleaner, then strip section signs and odd symbols here. Filename batches: ASCII safe preset with custom keep characters for dots and hyphens in version numbers.

Common questions

Will removing accents break Hindi, Arabic, or Thai? No. Accent removal targets Latin and Greek decoration marks. Devanagari, Arabic, Hebrew, Thai, and Cyrillic marks are left intact.

What is the difference between symbols and special characters? Symbols are math, currency, and signs like + = $ €. Punctuation is , . ! ? and quotes. Remove special clears both; you can also toggle each class.

Does emoji removal leave broken leftovers? No. Clusters including skin tones, flags, and families remove as one unit.

Which Unicode form should I use? NFC for general storage; NFKC when folding lookalikes and compatibility characters for strict systems.

Is my text uploaded? No. Character cleaning runs entirely in your browser.

Frequently asked questions

Will removing accents break Hindi, Arabic, or Thai text?

No. Accent removal only targets Latin and Greek, where marks are decoration. In Devanagari, Arabic, Hebrew, Thai, and Cyrillic the marks are part of the letter, so they are left alone.

What is the difference between symbols and special characters?

Symbols are math, currency, and sign characters like + = $ €. Punctuation is marks like , . ! ? and quotes. Remove special characters clears both at once, and you can also toggle each one separately.

Does emoji removal leave broken leftovers?

No. Joined emoji such as families, flags, and skin tones are removed as a single unit, so no zero-width joiners or variation selectors are left behind.

Which Unicode normalization form should I use?

NFC is the safe default for storing and comparing text. NFD splits letters from their marks. NFKC and NFKD also fold lookalikes, turning fancy fonts, ligatures, and circled numbers into plain characters.

Is my text uploaded?

No. Character cleaning runs entirely in your browser. Text never leaves your device.