1.
String.normalize should support NFKC and NFKD unicode normalization format.
Those are particularly useful to generate "machine identifiers" from user input, like usernames.
2.
The second part (which is independent but related), is support for unicode transliteration.
Basically, this is a "non destructive" unicode->ascii conversion.
There is a library doing it in elixir
and a javascript example
Also some discussion on the forum:
My thinking is that all those libraries are doing it a bit differently, because, well, unicode is hard.
And with unicode being so hard, I think it should be implemented at the language level (or in a core library) to be done right and supported.
It might not matters much for English readers, but for other languages, it is something you will implement eventually, often poorly.
Some references: