Что ж, если вы действительно хотите вставить богатую строку юникода в простую строку ascii (и не возражаете против некоторых глупостей), вы можете использовать это:
import unicodedata as ud
def shoehorn_unicode_into_ascii(s):
# This removes accents, but also other things, like ß‘’“”
return ud.normalize('NFKD', s).encode('ascii','ignore')
Для более полного решения (с несколько меньшим количеством ошибок, но требующий стороннего модуля unidecode ), см. этот ответ .
Действительно, однако, лучшее решение - это работать с данными Unicodeво всем коде, насколько это возможно, и переходите к кодировке только при необходимости.