Я ищу быстрый и, возможно, удобный способ в Python 3 переводить строки с буквами, отличными от ascii, в слова, содержащие только буквы ascii.
Примеры!
ółw => zolw
móżdżek => mozdzek
łód => lodz
и так далее ...
В национальных алфавитах много букв, которые можно преобразовать в буквы ASCII (например, ń к п). Я могу сделать это вручную для своего языка (польского), указав, как переводить каждую букву. Но есть ли какой-нибудь автоматический способ сделать это? Или какая-нибудь библиотека, которая сделает то, что мне нужно?
Pythons str.encode ()
не подойдет, потому что "żółw" .encode ('ascii', 'replace') == "??? w"
и "żółw" .encode ('ascii', 'ignore') == "w"
...
Я могу сделать такой перевод для польских букв, но Я не хочу делать это для всех других языков:
>>> utf8_letters = ['ą','ę','ć','ź','ż','ó','ł','ń','ś']
>>> ascii_letters = ['a','e','c','z','z','o','l','n','s']
>>> trans_dict = dict(zip(utf8_letters,ascii_letters))
>>> turtle = "żółw"
>>> out = []
>>> for l in turtle:
... out.append(trans_dict[l] if l in trans_dict else l)
>>> result = ''.join(out)
>>> result
'zolw'
Приведенный выше код делает то, что я хочу, с полированными буквами, но это некрасиво: <Как лучше всего это сделать?
Конечно, такие переводы изменятся значения некоторых слов, но это нормально.