Convert non-ASCII characters (umlauts, accents...) to their closest ASCII equivalent (for slug creation)

Viewed 12290

I am looking for way in JavaScript to convert non-ASCII characters in a string to their closest equivalent, similarly to what the PHP iconv function does. For instance if the input string is Rånades på Skyttis i Ö-vik, it should be converted to Ranades pa skyttis i o-vik. I had a look at phpjs but iconv isn't included.

Is it possible to perform such conversion in JavaScript, if so how?

Notes:

  • more generally this process of conversion is called transliteration
  • my use-case is the creation of URL slugs
3 Answers

I would recommend Unicode package, it will also map Greek and Cyrillic letters to their closest ascii symbol:

unidecode('Lillı Celiné Никита Ödipus');

'Lilli Celine Nikita Odipus'

Related