Remove accents from text

Remove accents from text by normalising each character to its Unicode NFD form and dropping every combining mark. So café becomes cafe, résumé becomes resume, and naïve becomes naive. A Keep field whitelists individual accented letters that should pass through untouched. The transform runs in your browser. To strip non-ASCII characters wholesale, see remove non-ASCII.

Input
Line 1:1 LF cloud_done Saved locally
Result Remove Accents
0 lines 0 chars

How accent removal works

The pass calls String.prototype.normalize('NFD'), which decomposes every accented letter into its base letter plus a sequence of combining marks. é becomes e + U+0301 (combining acute), ñ becomes n + U+0303 (combining tilde). A regex then strips every codepoint in the combining mark range U+0300 through U+036F, leaving only the base letters.

Letters without a decomposable form are left untouched. So ß (German sharp-s) stays as ß, ø (Danish o-stroke) stays as ø, and æ stays as æ. These are independent letters in their respective alphabets, not accented versions of s or o. To force them to ASCII equivalents, use remove non-ASCII or run a custom find and replace first.

The Keep field accepts a space- or comma-separated list of accented characters that should pass through verbatim. Type é ñ to keep e-acute and n-tilde while still flattening every other accent. The pass walks the input one character at a time when the keep list is non-empty, so behaviour is predictable.

How to use remove accents from text

  1. 1Paste accented text into the input panel on the left.
  2. 2Read the unaccented result on the right with diacritics removed.
  3. 3Type accented letters into the Keep field to whitelist them.
  4. 4Separate multiple keepers with a space or comma, e.g. é ñ.
  5. 5Click Copy to take the cleaned text.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

NFD decomposition then combining-mark strip

Each character is decomposed via normalize('NFD'), then a regex on U+0300 to U+0367 (the Combining Diacritical Marks block) strips every mark. Latin, Greek, Cyrillic, and Vietnamese accents all flatten to their base letters in this single pass.

Keep field whitelists per character

Type letters into Keep, separated by spaces, commas, or semicolons. Each whitelisted character passes through with its accent intact while every other accent is stripped. Useful for selective preservation in proper nouns or brand names.

Non-decomposable letters pass through

Characters with no NFD decomposition stay verbatim. That includes German ß, Danish ø, the digraph æ, the Icelandic ð and þ. They are independent letters, not accented forms.

Digits, punctuation, emoji untouched

The strip only matches combining marks. Letters without accents, digits, punctuation, whitespace, and emoji all pass through unchanged. Use remove numbers or remove emoji for those.

Case is preserved

Uppercase and lowercase accents flatten to their base letter in the same case. É becomes E, é becomes e. To also fold case, run the result through lowercase or uppercase.

Worked example

NFD decomposition pulls each accent off its base letter; the combining-mark strip then deletes the mark. Case is preserved.

Input
Café résumé naïve façade
Ñoño piñata jalapeño
Output
Cafe resume naive facade
Nono pinata jalapeno

Settings reference

Setting or behaviour Effect on output
Keep field (default empty) Whitelist of accented characters to preserve. é ñ keeps e-acute and n-tilde verbatim.
Latin diacritics Stripped via NFD. é -> e, ñ -> n, ç -> c.
Greek, Cyrillic, Vietnamese accents Also stripped, since the same combining-mark block applies.
ß, ø, æ, ð Pass through unchanged. They are independent letters with no NFD decomposition.
Digits, punctuation, whitespace, emoji Pass through unchanged.
Letter case Preserved. É -> E, é -> e.

FAQ

Why does ß stay as ß instead of becoming ss?
The German sharp-s is an independent letter in Unicode with no NFD decomposition into a base plus combining mark. So accent stripping leaves it alone. To convert it to ss, run find and replace with ß as the pattern and ss as the replacement before or after this tool.
Will it convert æ, œ, ø, and þ to plain letters?
No. Those are independent letters in their alphabets, not accented variants. They have no NFD decomposition into a base plus combining mark. To turn them into Latin equivalents, run find and replace with explicit mappings, then this tool.
How do I keep specific accents?
Type the letters into the Keep field, separated by spaces, commas, or semicolons. For example é ñ keeps every é and ñ as-is while flattening every other accent. Match case matters, so add both é and É if the text mixes them.
Does it work on Greek or Cyrillic accents?
Yes. The combining-mark range U+0300 to U+036F covers Latin, Greek, Cyrillic, and Vietnamese diacritics. μέρα becomes μερα, тро́я becomes троя. Letters without combining marks pass through unchanged.
Is anything sent to a server?
No. The transform is two JavaScript calls (normalize and replace) evaluated locally in your browser. Nothing uploads, nothing logs, no record of your text exists on our servers.