Мне интересно узнать, как убрать диакритические знаки из текста. Тем не менее, я пытаюсь лучше понять, что происходит в следующих строках кода, которые я нашел в сообщении от 2017 года ( Как заменить акцентированные символы в python? ):
import unicodedata
text = unicodedata.normalize('NFD', text).encode('ascii','ignore').decode('utf-8')
Вот мое грубое понимание:
unicodedata.normalize('NFD',text)
переводит каждый символ в его разложенную форму (например, à становится a),.
.encode('ascii','ignore')
преобразует нормализованный текст в байтовую строку ascii (b'string'
) и игнорирует все ошибки.
.decode('utf-8')
возвращает строку, декодированную из заданных байтов, но здесь я застрял,Почему бы не использовать .decode('ascii')
вместо этого? Пересекаются ли две кодировки?