Remove Accents

Accents off, including the awkward letters.

Accents off, including the awkward letters.

How to use it

  1. Paste the text. Any script. Only combining marks are removed.
  2. Copy the plain version. Ready for a filename, a URL or a system that will not take accents.
  3. Check the awkward letters. Eszett, the ligatures and the crossed letters are expanded rather than dropped.

When you would use this

Stripping accents is one line of Unicode normalisation and a list of exceptions, and the exceptions are the reason a tool is worth having. The line is decomposition: normalising to NFD splits an accented letter into a base letter and a separate combining mark, and the mark can then be removed on its own. That handles the great majority of European text correctly. What it does not handle is letters that are not accented versions of anything. German eszett is its own letter and decomposition leaves it alone, so a naive implementation drops it entirely and Straße becomes Strae. The same goes for the ligatures and for letters with a stroke through them, since a stroke is not a combining mark. Each of those is mapped explicitly to the substitution people expect. Combining marks come off in every script, not only Latin. Greek and Cyrillic accents are removed the same way, which is consistent and is what makes this usable for search normalisation beyond European languages.

Questions

Why is Straße not Strae?
Because eszett is a letter in its own right rather than an accented s, so decomposition cannot help with it. It expands to ss, which is the standard substitution. The same applies to the ligatures and to the letters with a stroke through them, such as the Polish l and the Nordic o.
What happens to Greek or Cyrillic?
Their combining marks come off too, so a Greek tonos and a Cyrillic breve are removed the same way a French acute is. That is consistent rather than surprising, and it is what makes the tool useful for search normalisation in those scripts. Scripts with no combining marks, such as CJK, are untouched.
Is this the same as making a slug?
It is the first half of it. A slug also lowercases, replaces spaces and strips punctuation. If you want a URL, the slug generator does all of that in one step.