UTILS.
100% in-browser
é→e

Remove Accents & Diacritics

Strip accent marks and diacritics from text to produce plain letters — café → cafe, naïve → naive, Zürich → Zurich — with an optional ASCII-only toggle.

Type or paste accented text above to strip diacritics.

About this tool

Remove Accents & Diacritics converts accented text into its plain-letter form: café becomes cafe, naïve becomes naive, résumé becomes resume, and Zürich becomes Zurich. It is ideal for cleaning up data for URLs, slugs, filenames, usernames, search keys, or any system that expects unaccented ASCII, while preserving your original spacing, punctuation and letter case.

Under the hood it uses Unicode normalization. The text is normalized to NFD form, which splits an accented letter such as é into a base e plus a separate combining accent, and then every character in the Combining Diacritical Marks block (U+0300–U+036F) is removed with a regular expression. That single step handles the great majority of European accents cleanly and reversibly for the base letter.

Some letters have no canonical decomposition, so a small explicit fallback map covers them: ø→o, ł→l, đ→d, ß→ss, æ→ae, œ→oe, þ→th, ð→d, ħ→h, ı→i and their capitals, among others. An optional "strip all non-ASCII" toggle goes further, dropping any remaining character above U+007F for a guaranteed pure-ASCII result. Everything is deterministic and runs locally in your browser — your text is never uploaded.

Frequently asked questions

How are accents removed?
The text is normalized to Unicode NFD, which separates each accented letter into a base letter plus combining marks, then all combining diacritical marks (U+0300–U+036F) are deleted. So é → e, ñ → n and ü → u, keeping the base letters.
What about letters like ø, ł or ß?
Those have no canonical decomposition, so a built-in fallback map converts them explicitly — ø→o, ł→l, đ→d, æ→ae, œ→oe, þ→th and ß→ss, plus their uppercase forms — so they still become sensible plain letters.
What does the strip-all-non-ASCII option do?
After removing diacritics, it deletes any character still above U+007F, guaranteeing pure ASCII output. Leave it off to keep unmapped non-Latin characters (like Greek or Cyrillic) intact; turn it on to force a clean ASCII-only string.
Is my text sent anywhere?
No. All normalization and stripping happen entirely in your browser with String.normalize and plain JavaScript. Nothing is uploaded, so you can safely clean private or sensitive text.

More tools