Как транслитерировать текст в Юникоде с PyICU в ASCII?

Существует библиотека PyICU, которую, как я понимаю, можно использовать для транслитерации строк. Однако нет никаких документов. У кого-нибудь есть простой пример, который транслитерирует строку Unicode в ASCII с PyICU?

Документация C++ ICU для транслитерации находится здесь, но я не понимаю, как вызвать ее из Python.

1 ответ

Здесь есть хорошая шпаргалка по PyICU: https://gist.github.com/dpk/8325992

Вот немного измененный пример:

>>> import icu
>>> tl = icu.Transliterator.createInstance('Any-Latin; Latin-ASCII')
>>> tl.transliterate('Ψάπφω')
'Psappho'

Исходя из первой ссылки, которую вы дали, я предполагаю, 1) что вы уже создали PyICU 2) вы убедились, что библиотека доступна (см. Документацию на вашей связанной странице, если у вас нет вышеуказанного)

Я нашел эту документацию по вашей ссылке:

Чтобы преобразовать строку Python, закодированную в кодировке, отличной от utf-8, в ICU UnicodeString, используйте конструктор UnicodeString (str, encodingName).

Так что вам нужно найти encodingName, я думаю, у вас будет ASCII (вы должны проверить, чтобы убедиться, что это правильно, я не потрудился)

Тогда я полагаю, вы бы сделали что-то вроде этого:

>>> from icu import UnicodeString
 . 
 .
 . 
>>> string = UnicodeString(strToConvert, ASCII)

Это просто быстрая идея, мммм. Возможно, вы захотите проверить веб-сайт, так как он дает больше примеров и как делать "путь Python" или "путь ICU". CHEERS!

Другие вопросы по тегам