Remove Accents & Diacritics

Strip accent marks to get plain ASCII-friendly text.

Free tool to remove accents and diacritics from text — turn café into cafe, naïve into naive. Uses Unicode normalization in your browser; nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

How does it remove the accents?

It uses Unicode NFD normalization to split each letter from its combining accent mark, then removes the marks, leaving the base letter.

Convert accented characters to their plain base letters — café → cafe, naïve → naive, résumé → resume. It is handy for URL slugs, file names, search keys, usernames, and any system that only accepts plain ASCII.

How it works

The tool applies Unicode NFD normalization to your text. NFD (Normalization Form Decomposition) splits each precomposed accented character into its base letter followed by one or more separate combining diacritical marks — so é becomes e plus the combining acute accent (U+0301). The tool then removes every combining character in the Unicode range U+0300–U+036F, leaving just the base letters. Characters that have no decomposed form in Unicode — such as ł, ø, and ß — are left as-is rather than guessed at, so nothing is mapped incorrectly. Everything runs locally in your browser.

What strips and what stays

InputOutputWhy
cafécafeé decomposes to e + combining acute
naïvenaiveï decomposes to i + combining diaeresis
résuméresumeé decomposes cleanly
ÅngströmAngstromÅ and ö have combining forms
ŁódźŁodzŁ has no combining accent — stays as Ł; ó and ź strip
ßßno combining form — left unchanged
øøno combining form — left unchanged

Common use cases

URL slugs. Stripping diacritics is the first step in slug generation. “Crème Brûlée” becomes “Creme Brulee”, which then lowercases and hyphenates cleanly to creme-brulee. Most slug libraries do exactly this internally.

Database search and matching. Storing a stripped shadow column alongside the original lets you match Muñoz when a user types Munoz, without losing the correct spelling in the stored record.

Usernames and identifiers. Systems that limit IDs to the ASCII range use accent removal so a user with an accented name still gets a sensible default identifier.

CSV and file exports. Many spreadsheet or legacy systems struggle with accented characters in headers or file names; stripping them prevents encoding errors downstream.

What this tool does NOT do

  • It does not transliterate characters that have no combining form (ø → o, ß → ss). Those require a separate romanisation table, and the correct mapping varies by language context.
  • It does not change the meaning of words. In French, “ou” (or) and “où” (where) are different words. In Spanish, “sí” (yes) and “si” (if) differ only by accent. Strip only when ASCII compatibility matters more than correct orthography.
  • It does not handle Cyrillic, Arabic, CJK, or other non-Latin scripts — those characters pass through unchanged, which is the correct behaviour since they have no ASCII equivalent.

Language-specific quirks to know

Some accent-stripping results are language-specific and may be surprising:

  • German umlauts (ä, ö, ü) strip to a, o, u — but the standard German transliteration expands them to ae, oe, ue. This tool does not do that expansion.
  • The Spanish ñ strips to n — which changes word meaning in some contexts.
  • The French ç strips to c — acceptable for slugs, incorrect for spell-checking.
  • The Norwegian/Danish ø and the Polish ł have no combining decomposition and are left as-is, not converted to o or l.

For slug generation and identifier creation, the NFD-strip approach is almost always adequate. For text that humans will read, be aware of what the stripping changes in the relevant language.

All processing happens in your browser and nothing is transmitted to any server.