Метод unicodedata.normalize
может переводить кодовые точки Unicode в канонические значения. Затем прогоните значение через кодировку ascii
, игнорируя значения, отличные от ASCII для байтовой строки, затем вернитесь через ascii
декодирование, чтобы снова получить строку Unicode:
>>> x='€???????'
>>> ud.normalize('NFKC',x).encode('ascii',errors='ignore').decode('ascii')
'Patriot'
Если вам нужно удалить акценты из буквы, но по-прежнему сохраняйте базовую букву, используйте вместо этого 'NFKD'
.
>>> x='€?????ô?'
>>> ud.normalize('NFKD',x).encode('ascii',errors='ignore').decode('ascii')
'Patriot'