Замените не-ascii символы из строки Unicode в Python - PullRequest
11 голосов
/ 14 сентября 2010

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

Это вывод, который я использую для заданных входов:

музыка -> musica

cartón -> carton

caño -> cano

Myaybe с надписью, где 'á' является ключом, а 'a' значением?

Ответы [ 2 ]

21 голосов
/ 14 сентября 2010

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

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore')
'musica'
7 голосов
/ 09 февраля 2013

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

import unicodedata
unicodedata.normalize('NFKD',unicode(someString,"ISO-8859-1")).encode("ascii","ignore")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...