Я не могу говорить о других форматах, но utf8 не должен быть слишком сложным.
Просто посмотрите на первый байт фрагмента, который вы взяли, и выясните оттуда:
Взято из википедии:
00000000-01111111 00-7F 0-127 US-ASCII (single byte)
10000000-10111111 80-BF 128-191 2'nd, 3rd, or 4'th byte of a multi-byte sequence
11000000-11000001 C0-C1 192-193 start of a 2-byte sequence, but code point <= 127
11000010-11011111 C2-DF 194-223 Start of 2-byte sequence
11100000-11101111 E0-EF 224-239 Start of 3-byte sequence
11110000-11110100 F0-F4 240-244 Start of 4-byte sequence
Если байт находится во 2-й или 3-й группе, то вы знаете, что пропустили часть символа. Если это в 1-й, 4-й, 5-й, 6-й группе, то вы знаете, что находитесь в начале персонажа. Действуйте соответственно оттуда.