Как транслитерировать текст в Юникоде с 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!