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
- 1Paste accented text into the input panel on the left.
- 2Read the unaccented result on the right with diacritics removed.
- 3Type accented letters into the Keep field to whitelist them.
- 4Separate multiple keepers with a space or comma, e.g.
é ñ. - 5Click Copy to take the cleaned text.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run 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.
Café résumé naïve façade Ñoño piñata jalapeño
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?
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?
How do I keep specific accents?
é ñ 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?
μέρα becomes μερα, тро́я becomes троя. Letters without combining marks pass through unchanged.Is anything sent to a server?
normalize and replace) evaluated locally in your browser. Nothing uploads, nothing logs, no record of your text exists on our servers.