Замените символы, отличные от ascii, из строки unicode в Python

Как я могу заменить символы, отличные от ascii, из строки unicode в Python?

это выход, который я выделяю для заданных входов:

музыки -> Музыка

cartón - > carton

Каньо -> Кано

Myaybe с дикт где 'á' - это ключ и значение?

2 ответов


Если все, что вы хотите сделать, это ухудшить акцентированные символы до их не акцентированного эквивалента:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore')
'musica'

теперь, просто чтобы дополнить этот ответ: Возможно, ваши данные не поступают в unicode (т. е. Вы читаете файл с другой кодировкой, и вы не можете префиксировать строку "u"). Вот фрагмент кода, который может работать (в основном для тех, кто читает файлы на английском языке).

import unicodedata
unicodedata.normalize('NFKD',unicode(someString,"ISO-8859-1")).encode("ascii","ignore")