при условии, что вы знаете, как двигаться назад в строке (и при условии, что указатель, который они вам дают, фактически гарантированно соответствует первому байту текущего символа, если он многобайтовый). Просто вернитесь на два байта назад.
Если данные при текущем -2> 127, то предыдущий символ - это последние два байта. если данные с текущим значением -2 <127, то предыдущий символ с текущим значением -1. </p>
Аналогично для следующего персонажа. Если данные при текущем + 1 <127, то это следующий символ, иначе это начало многобитного символа. </p>
Если вы не можете двигаться назад, то нет способа сделать это, если не прочитать всю строку, пока не достигнете текущей позиции. Используйте стек для отслеживания последних двух байтов, когда вы нажимаете текущий адрес, тогда все данные, необходимые для предыдущего символа, находятся в стеке.