Проблема с другими предлагаемыми решениями заключается в том, что они будут либо сбрасывать символы, которые нельзя напрямую сопоставить с ASCII, либо заменять их на маркерный символ, такой как ?
.
Вы можете захотеть, например, чтобы символы с акцентом были преобразованы в этот же символ без акцента. Для этого есть несколько хитростей (в том числе создание таблицы статического отображения самостоятельно или использование существующей «нормализации», определенной для юникода), но эти методы еще далеко не завершены.
Лучше всего использовать библиотеку junidecode , которая также не может быть завершена, но включает в себя большой опыт транслитерации Unicode в ASCII.