Я анализирую файл, который содержит как альфа-строки, так и строки Unicode/UTF-8, содержащие произношение IPA.
Я хочу иметь возможность получить последний символ строки, но иногда эти символы занимают два пробела, например
syl = 'tyl' # plain ascii
last_char = syl[-1]
# last char is 'l'
syl = 'tl̩' # contains IPA char
last_char = syl[-1]
# last char erroneously contains: '̩' which is a diacritical mark on the l
# want the whole character 'l̩'
Если я попытаюсь использовать .decode(), это не удастся
'str' object has no attribute 'decode'
Если я попытаюсь использовать .encode().decode(), я вернусь к тому, с чего начал, и просто получу диакритический знак вместо полного символа.
Как получить последний символ строки unicode/utf-8 (если вы не знаете, является ли это строкой ascii или unicode)
Думаю, я мог бы использовать таблицу поиска известных символов, и если это не удастся, вернуться и взять syl[-2:]. Есть ли более простой способ?
.....
В ответ на некоторые комментарии, вот полный список символов IPA, которые я использовал. собрано на данный момент
a, b, d, e, f, f̩, g, h, i, i̩, i̬, j, k,
l, l̩, m, n, n̩, o, p, r, s, s̩, t, t̩, t̬,
u, v, w, x, z, æ, ð, ŋ, ɑ, ɑ̃, ɒ, ɔ, ə,
ə:, ɚ, ɚ:, ɛ, ɜ, ɜ˞, ɝ, ɡ, ɪ, ɵ, ɹ, ɹ:,
ɾ, ʃ, ʃ̩, ʊ, ʌ, ʒ, ʤ, θ, ∅,
Подробнее здесь: https://stackoverflow.com/questions/789 ... be-unicode