Если ваш Unicode имеет размер от 1 до 4 байтов, то я предполагаю, что вы используете кодировку UTF-8; это, безусловно, обычное явление.
Кодовые точки UTF-8 могут иметь длину 1, 2, 3 или 4 байта, с различными шаблонами для байтов, которые помогут вам их распознать.
- 1 байт: 0xxxxxxx
- 2 байт: 110xxxxx 10xxxxxx
- 3 байт: 1110xxxx 10xxxxxx 10xxxxxx
- 4 байт: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
ведущий биты каждого байта говорят вам, что это, будь то начальный или следующий байт. Старшие байты также сообщают вам, сколько следует ожидать следующих байтов.
Поэтому, если вы найдете байт: 11010110, вы знаете, что он является старшим байтом двухбайтовой кодовой точки. Вы ожидаете увидеть один следующий байт: 10xxxxxx после него, за которым следует начальный байт следующей кодовой точки.